diff --git a/.gitignore b/.gitignore index 22681a10fc..d7d300f20d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .idea .DS_Store node_modules +coverage scripts/storage scripts/htpasswd @@ -15,3 +16,4 @@ scripts/htpasswd .turbo .claude/ .intent-layer/ +docs/superpowers/ diff --git a/AGENTS.md b/AGENTS.md index 64f5f424e3..83ea1fa524 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -31,14 +31,14 @@ AGENTS.md files at semantic boundaries provide AI agents with context. Start her ## Architecture -This is a Yarn 3 monorepo managed by Turbo (builds) and Lerna-Lite (publishing). It publishes six `@angular-builders/*` npm packages that extend Angular CLI's Architect build system. Builders' major versions track Angular's major version (currently 21). +This is a Yarn 3 monorepo managed by Turbo (builds) and Lerna-Lite (publishing). It publishes six `@angular-builders/*` npm packages that extend Angular CLI's Architect build system. Builders' major versions track Angular's major version (currently 22). The two primary packages -- `custom-esbuild` and `custom-webpack` -- wrap Angular's two build systems respectively: `@angular/build` (esbuild/Vite) and `@angular-devkit/build-angular` (Webpack). They allow users to inject custom build configuration without ejecting from the CLI. The `jest` package replaces Karma with Jest for `ng test`. `bazel` and `timestamp` are thinner wrappers. ### Package Dependency Graph ``` -custom-esbuild ──> common ──> ts-node, tsconfig-paths +custom-esbuild ──> common ──> jiti, get-tsconfig custom-webpack ──> common, @angular/build (IndexHtmlTransform type) jest ──────────> common bazel (standalone -- no common dependency) @@ -114,7 +114,7 @@ Lerna-Lite manages versioning and publishing. Packages use **independent version ## Invariants -**MUST:** Builder major versions match Angular CLI major version. A v21 builder requires Angular CLI 21. +**MUST:** Builder major versions match Angular CLI major version. A v22 builder requires Angular CLI 22. **MUST:** All packages publish under `@angular-builders` npm scope with public access. @@ -126,10 +126,14 @@ Lerna-Lite manages versioning and publishing. Packages use **independent version **MUST NEVER:** Ship a breaking dependency update (e.g., a new webpack-merge major) as a minor version of a builder package. Breaking changes must wait for the next major version aligned with Angular. (Source: SME interview, Jeb, 2026-02-16) +**MUST:** Any PR introducing a breaking change that requires changes to a user's project (code, config, npm scripts, dependencies, or workspace files) MUST ship the corresponding `ng update` migration schematic in the same PR — users should never have to perform the migration by hand. The affected builder packages expose `ng update` via their `migrations.json` (`ng-update` field in `package.json`); shared migration logic lives in `@angular-builders/common/schematics` (e.g. `migrateToJitiLoader`) and per-package migrations delegate to it. Automate everything that can be applied safely; only `logger.warn` for changes that cannot be made automatically without risking the user's build. + **MUST NEVER:** Use `ci(release)` in commit messages outside of the automated publish process -- it causes CI to skip the entire pipeline. **MUST:** When creating a pull request, read `.github/PULL_REQUEST_TEMPLATE.md` and use its structure for the PR body. Fill in all sections: PR checklist, PR type, current behavior, new behavior, and breaking change flag. ## Angular Major Version Upgrade Process +**Runbook:** [`docs/runbooks/angular-major-upgrade.md`](docs/runbooks/angular-major-upgrade.md) — step-by-step procedure (branch, bump, `ng update` examples, fix breakage, migration coverage, RC→GA). + The upgrade process is not fully automated. It partially originates from Renovate PRs, but each Angular major update also requires running `ng update` for apps in `examples/`. The goal is full automation but it currently requires manual steps. Work sometimes begins against Angular RCs to have PRs ready, so only a final version update is needed when the major release lands. The packages layer is where Angular CLI internal API changes are felt most -- internal API moves (renamed/moved packages or exports) and schema changes to builder options are the most common breakages. (Source: SME interview, Jeb, 2026-02-16) diff --git a/MIGRATION.MD b/MIGRATION.MD index 7dcc5e44c3..cc6953caf3 100644 --- a/MIGRATION.MD +++ b/MIGRATION.MD @@ -1,3 +1,72 @@ +# Migration from version 21 to version 22 + +## What's new: automated `ng add` and `ng update` + +Version 22 introduces Angular schematics for the builder packages, so you no longer have to wire builders into `angular.json` by hand: + +- `ng add @angular-builders/jest` — sets up the Jest builder as your `ng test` runner. Detects an existing Karma, Vitest (Angular 22's new default), or Jest setup and migrates the test target accordingly. +- `ng add @angular-builders/custom-esbuild` / `ng add @angular-builders/custom-webpack` — scaffold the custom build setup. +- `ng update @angular-builders/jest` — runs the version migrations below automatically. + +The `ng update` migration window is `(from, to]`, so a project on **any version from 17 through 21 can jump straight to 22** in a single `ng update @angular-builders/jest`. The v21 migration (dep bumps, `Node16` tsconfig, option renames/removals — see the v20→v21 section below) and the v22 advisory both run in order. + +## Breaking Changes + +### Jest builder: `isolatedModules` now defaults to `true` + +`ts-jest` `isolatedModules` now defaults to **`true`** (previously implicitly `false`) for significantly faster compilation. This is a behavior change in the builder itself — it is **not** rewritten into your config. + +Impact: a `const enum` shared across files, and type-only re-exports without the `type` modifier, will now error under `isolatedModules`. + +- To keep the old behavior, set `isolatedModules: false` in your Jest config. +- Otherwise, fix the call sites: convert `const enum` to a regular `enum` (or `as const`), and use `export type` for type-only re-exports. + +`ng update @angular-builders/jest` does **not** change this for you — it runs an advisory migration that warns and lists any `const enum` it finds. The new default is intentional. + +### Jest builder: coverage output is now scoped per-project + +`coverageDirectory` now defaults to `/coverage` instead of `./coverage`. In multi-project workspaces this prevents projects from overwriting each other's coverage reports. + +Impact: update any CI/tooling that reads a hardcoded `./coverage/` path. The `ng update` advisory migration warns and lists affected projects. + +### All builders: TypeScript config & plugin files now load via `jiti` (`ts-node` removed) + +`@angular-builders/common` — the loader shared by `custom-esbuild`, `custom-webpack`, and `jest` for your TypeScript config/plugin files (`webpack.config.ts`, esbuild `plugins.ts`, a `.ts` Jest config, etc.) — now uses [`jiti`](https://github.com/unjs/jiti) instead of `ts-node`. `ts-node` and `tsconfig-paths` are no longer dependencies of any `@angular-builders` package. + +What changes for you: + +- **No build-time type-checking of config/plugin files.** `jiti` transpiles (strips types) rather than type-checking. Your config runs the same, but a type error inside it no longer fails the build. To keep type-checking, run `tsc --noEmit` on those files separately (e.g. in CI). +- **The `NODE_OPTIONS='--loader ts-node/esm'` workaround is gone.** ESM apps previously needed `TS_NODE_PROJECT` / `--loader ts-node/esm` to load `.ts` configs; `jiti` handles ESM/CJS/TS natively, so those npm-script wrappers can be removed. +- **`ts-node` / `tsconfig-paths` can be dropped from `devDependencies`** (unless you use them elsewhere). +- **`ts-node`-specific tsconfig options** (the `"ts-node"` section) no longer apply; path mappings belong in `compilerOptions`. + +✅ **Mostly automated.** `ng update @angular-builders/custom-esbuild` / `ng update @angular-builders/custom-webpack` run a migration (the `jest` builder runs the same logic as an advisory) that: + +- strips the `NODE_OPTIONS='--loader ts-node/esm'` workaround from your npm scripts, +- removes the `ts-node` / `tsconfig-paths` devDependencies, +- lifts path-mapping options out of the `"ts-node"` tsconfig section into `compilerOptions`. + +⚠️ **Manual:** the loss of build-time type-checking is intentional and can't be restored via config — add a `tsc --noEmit` step if you relied on it. Any non-path `"ts-node"` overrides that can't be migrated safely are logged as advisories rather than changed. + +## Custom ESBuild builder + +- No breaking changes beyond the shared `jiti` loader change above and updating to Angular 22. +- `ng add @angular-builders/custom-esbuild` is now available. + +## Custom Webpack builder + +- No breaking changes beyond the shared `jiti` loader change above and updating to Angular 22. +- `ng add @angular-builders/custom-webpack` is now available (scaffolds a `webpack.config.js`). + +## Angular 22 test runner note (Karma vs Vitest) + +Angular 22 unifies test runners under the `@angular/build:unit-test` builder with a `runner` option (`"vitest"` is the default for new apps; `"karma"` is still supported). `@angular-builders/jest` replaces this with its own `:run` target: + +- `ng add @angular-builders/jest` detects a Karma, Vitest, or existing Jest setup and rewrites the test target to the Jest builder. For a Vitest project it also fixes `tsconfig.spec.json` types (`vitest` → `jest`) and advises on any `vi.*` usages in your specs. +- Karma is **not removed** in Angular 22 — it's deprecated. Running `ng update @angular/core` to v22 keeps existing Karma users on Karma (Angular rewrites the target to `@angular/build:unit-test` with `runner: "karma"`). Migrating to Jest stays opt-in via `ng add @angular-builders/jest`. + +--- + # Migration from version 20 to version 21 ## Breaking Changes diff --git a/README.md b/README.md index e5efa656dc..7c2bbb420e 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ The purpose of this repository is to consolidate all the community builders for Angular build facade. -## The latest version of all the builders requires Angular CLI 21 +## The latest version of all the builders requires Angular CLI 22 Builders' and Angular **major** versions **must** match. @@ -15,6 +15,7 @@ Builders' and Angular **major** versions **must** match.
Click to expand +- [Version 21](https://github.com/just-jeb/angular-builders/tree/21.x.x) - [Version 20](https://github.com/just-jeb/angular-builders/tree/20.x.x) - [Version 19](https://github.com/just-jeb/angular-builders/tree/19.x.x) - [Version 18](https://github.com/just-jeb/angular-builders/tree/18.x.x) diff --git a/__mocks__/ora.js b/__mocks__/ora.js new file mode 100644 index 0000000000..431f0ae1f1 --- /dev/null +++ b/__mocks__/ora.js @@ -0,0 +1,15 @@ +// Stub for the ESM-only `ora` package. Tests never exercise the +// package-manager task executor that uses ora, so a no-op spinner is enough. +'use strict'; + +function ora() { + return { + start: () => ({ stop: () => {}, succeed: () => {}, fail: () => {} }), + stop: () => {}, + succeed: () => {}, + fail: () => {}, + }; +} + +module.exports = ora; +module.exports.default = ora; diff --git a/docs/runbooks/angular-major-upgrade.md b/docs/runbooks/angular-major-upgrade.md new file mode 100644 index 0000000000..4d0b63a20d --- /dev/null +++ b/docs/runbooks/angular-major-upgrade.md @@ -0,0 +1,104 @@ +# Runbook: Angular Major Version Upgrade + +> How to move all `@angular-builders/*` packages and example apps to a new Angular major. Runs ~twice a year. Designed to be executed by an agent following these steps — the scripts handle the mechanical bumps; the agent handles the judgment (resolving internal-API breakage, fixing example apps, migration coverage). + +## When to run + +A new Angular major reaches **RC** (start prework so PRs are ready when GA lands) or **GA**. Builder major versions track the Angular major 1:1. + +## Roles + +- **Mechanical (scripts):** `scripts/update-package.js` (bumps builder Angular dep ranges) and `scripts/update-example.js` (runs `ng update` per example). Invoked via `yarn update:packages ` / `yarn update:examples `, or the `update.yml` workflow dispatch. +- **Judgment (agent):** resolve internal-API moves and schema changes that break builders, fix example apps, ensure migration coverage, handle RC→GA. + +## Preconditions + +- Clean root install: `yarn install` (a stale `node_modules` breaks Husky hooks — e.g. `yarn commitlint` not resolving — and builds). +- Node satisfies the target Angular's requirement (Angular 20+: `^20.19 || ^22.12 || >=24`). + +## Procedure + +### 1. Branch + +Create a long-lived integration branch off master: + +```bash +git checkout master && git checkout -b release/v +``` + +All v``-bound feature branches and held breaking PRs (`breaking-change` label) **base on / rebase onto** this branch. When GA lands and the branch is green, it merges to master. + +### 2. Bump builder Angular ranges + +```bash +yarn update:packages # e.g. 22 +``` + +`update-package.js` sets stable deps (`@angular/build`, `@angular-devkit/build-angular`, `@angular-devkit/core`, `@angular/compiler[-cli]`) to `^.0.0` and `@angular-devkit/architect` to `>=0.00.0 < 0.00.0`. + +> **RC caveat (current tooling gap):** the script takes an integer major and writes `^.0.0`, which by semver **excludes** prereleases like `.0.0-rc.2`. For RC prework you must either (a) temporarily pin the explicit RC versions, or (b) extend `update-package.js`/`update-example.js` to accept an explicit version/tag (recommended — makes RC prework first-class and agent-runnable). `@angular/cli@next` resolves to the current RC; `@angular/cli@` resolves to the latest **stable** `` (nonexistent during RC). + +### 3. Update example apps + +```bash +yarn update:examples +``` + +Runs `npx @angular/cli@ update @angular/core@ @angular/cli@ --create-commits` in each `examples/*` app (~7: `custom-esbuild` ×2, `custom-webpack` ×3, `jest` ×2). For RC, target `@next`/explicit RC per the caveat above. Review each app's generated commit. + +### 4. Install + build + validate + +```bash +yarn install +yarn build:packages:all +yarn test:local # integration matrix against examples/* +``` + +**This is the judgment core.** Expect breakage in the **packages layer** — internal Angular API moves (renamed/moved packages or exports) and builder-option schema changes are the most common (see `packages/AGENTS.md`). Fix per-package, rebuild, re-run until green. + +### 5. Migration coverage (the breaking-change loop) + +For the major, **enumerate every `breaking-change`-labeled PR** targeting it (`gh pr list --label breaking-change`). For **each** breaking change, confirm BOTH exist: + +1. a migration step (auto-transform or logged advisory) in the builder's `migrations.json` (see the builder-schematics design + `@angular-builders/common/schematics`), and +2. a `MIGRATION.MD` entry for the major, annotated ✅ automated by `ng update` vs ⚠️ manual. + +This is an **invariant**: a breaking change must not land in a major without both. CHANGELOGs are auto-generated from commits (orthogonal). + +#### RC-validated: multi-major `ng update` window (v22) + +Validated against `@angular/cli@22.0.0-rc.2` on `2026-06-03` via the `ng-update-jest-v21-smoke` e2e +(`scripts/e2e-jest-migration.js`): + +- `ng update @angular-builders/jest --migrate-only --from=20.0.0 --to=22.0.0` runs **all** migrations + whose version falls in the `(from, to]` window in one step — observed `migration-v21` (the heavy + config transform) **and** the `migration-v22` advisory both firing. So a user on an old major who + jumps straight to 22 gets the spanned migrations; they are not skipped. +- Supported flow for older users: upgrade the Angular framework to 22, then run + `ng update @angular-builders/jest` once (or `--migrate-only --from=` to run only the builder's + migrations). The post-migration config builds and tests green under v22 — proven by the e2e, which + runs `ng build` + `ng test` on the migrated app. +- E2E coverage of the migration output itself lives in `packages/jest/tests/integration.js` + (`ng-update-jest-v21-smoke`); the ng-add paths are the `ng-add-*` entries there and in the + `custom-esbuild`/`custom-webpack` integration files. + +### 6. Stack feature work + +Develop/rebase v``-bound features (e.g. schematics) and held breaking PRs on `release/v`. + +### 7. RC → GA + +When the major reaches GA: bump ranges from RC to final (`update:packages ` now resolves stable), re-run install + matrix, finalize `MIGRATION.MD`, merge `release/v` → master, then **graduate-publish** (CI dispatch `release_type: graduate`). + +## Known breakage hotspots + +- **Internal API moves** in `@angular/build` / `@angular-devkit/*` — imports the builders rely on get renamed/relocated (~every major). Felt in `packages/*/src`. +- **Schema/option changes** in Angular's base builder schemas — affects `custom-esbuild`/`custom-webpack` schema merging (`merge-schemes.ts`) and option pass-through. +- **Jest/test toolchain majors** (jest-preset-angular, Jest) — historically large (see jest `@21` migration). + +## References + +- Scripts: `scripts/update-package.js`, `scripts/update-example.js`, `scripts/AGENTS.md` +- Workflow: `.github/workflows/update.yml` (manual dispatch, input = version) +- Per-major user guide: `MIGRATION.MD` +- Breakage context: `packages/AGENTS.md`, root `AGENTS.md` → "Angular Major Version Upgrade Process" diff --git a/examples/bazel/MODULE.bazel.lock b/examples/bazel/MODULE.bazel.lock index 7f73c8b1e6..23f8dcfbd1 100644 --- a/examples/bazel/MODULE.bazel.lock +++ b/examples/bazel/MODULE.bazel.lock @@ -1,5 +1,5 @@ { - "lockFileVersion": 24, + "lockFileVersion": 26, "registryFileHashes": { "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", @@ -9,16 +9,34 @@ "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", - "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16", + "https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1", + "https://bcr.bazel.build/modules/abseil-cpp/20250512.1/MODULE.bazel": "d209fdb6f36ffaf61c509fcc81b19e81b411a999a934a032e10cd009a0226215", + "https://bcr.bazel.build/modules/abseil-cpp/20250814.1/MODULE.bazel": "51f2312901470cdab0dbdf3b88c40cd21c62a7ed58a3de45b365ddc5b11bcab2", + "https://bcr.bazel.build/modules/abseil-cpp/20250814.1/source.json": "cea3901d7e299da7320700abbaafe57a65d039f10d0d7ea601c4a66938ea4b0c", + "https://bcr.bazel.build/modules/apple_support/1.11.1/MODULE.bazel": "1843d7cd8a58369a444fc6000e7304425fba600ff641592161d9f15b179fb896", + "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85", + "https://bcr.bazel.build/modules/apple_support/1.21.0/MODULE.bazel": "ac1824ed5edf17dee2fdd4927ada30c9f8c3b520be1b5fd02a5da15bc10bff3e", + "https://bcr.bazel.build/modules/apple_support/1.21.1/MODULE.bazel": "5809fa3efab15d1f3c3c635af6974044bac8a4919c62238cce06acee8a8c11f1", + "https://bcr.bazel.build/modules/apple_support/1.24.2/MODULE.bazel": "0e62471818affb9f0b26f128831d5c40b074d32e6dda5a0d3852847215a41ca4", + "https://bcr.bazel.build/modules/apple_support/1.24.2/source.json": "2c22c9827093250406c5568da6c54e6fdf0ef06238def3d99c71b12feb057a8d", "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.23.0/MODULE.bazel": "fd1ac84bc4e97a5a0816b7fd7d4d4f6d837b0047cf4cbd81652d616af3a6591a", + "https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9", "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", - "https://bcr.bazel.build/modules/bazel_features/1.30.0/source.json": "b07e17f067fe4f69f90b03b36ef1e08fe0d1f3cac254c1241a1818773e3423bc", + "https://bcr.bazel.build/modules/bazel_features/1.33.0/MODULE.bazel": "8b8dc9d2a4c88609409c3191165bccec0e4cb044cd7a72ccbe826583303459f6", "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.42.1/MODULE.bazel": "275a59b5406ff18c01739860aa70ad7ccb3cfb474579411decca11c93b951080", + "https://bcr.bazel.build/modules/bazel_features/1.42.1/source.json": "fcd4396b2df85f64f2b3bb436ad870793ecf39180f1d796f913cc9276d355309", "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", @@ -31,73 +49,93 @@ "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", - "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/source.json": "f121b43eeefc7c29efbd51b83d08631e2347297c95aac9764a701f2a6a2bb953", - "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", - "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/source.json": "34a3c8bcf233b835eb74be9d628899bb32999d3e0eadef1947a0a562a2b16ffb", + "https://bcr.bazel.build/modules/buildozer/8.5.1/MODULE.bazel": "a35d9561b3fc5b18797c330793e99e3b834a473d5fbd3d7d7634aafc9bdb6f8f", + "https://bcr.bazel.build/modules/buildozer/8.5.1/source.json": "e3386e6ff4529f2442800dee47ad28d3e6487f36a1f75ae39ae56c70f0cd2fbd", "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", - "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108", + "https://bcr.bazel.build/modules/googletest/1.17.0/MODULE.bazel": "dbec758171594a705933a29fcf69293d2468c49ec1f2ebca65c36f504d72df46", + "https://bcr.bazel.build/modules/googletest/1.17.0/source.json": "38e4454b25fc30f15439c0378e57909ab1fd0a443158aa35aec685da727cd713", "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", - "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6/MODULE.bazel": "2f8d20d3b7d54143213c4dfc3d98225c42de7d666011528dc8fe91591e2e17b0", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6/source.json": "a04756d367a2126c3541682864ecec52f92cdee80a35735a3cb249ce015ca000", "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74", + "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9", "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", - "https://bcr.bazel.build/modules/platforms/0.0.11/source.json": "f7e188b79ebedebfe75e9e1d098b8845226c7992b307e28e1496f23112e8fc29", "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.0.0/source.json": "f4ff1fd412e0246fd38c82328eb209130ead81d62dcd5a9e40910f867f733d96", "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", - "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", - "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", - "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.1/MODULE.bazel": "557c3457560ff49e122ed76c0bc3397a64af9574691cb8201b4e46d4ab2ecb95", "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/32.1/MODULE.bazel": "89cd2866a9cb07fee9ff74c41ceace11554f32e0d849de4e23ac55515cfada4d", + "https://bcr.bazel.build/modules/protobuf/33.4/MODULE.bazel": "114775b816b38b6d0ca620450d6b02550c60ceedfdc8d9a229833b34a223dc42", + "https://bcr.bazel.build/modules/protobuf/33.4/source.json": "555f8686b4c7d6b5ba731fbea13bf656b4bfd9a7ff629c1d9d3f6e1d6155de79", "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", - "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34", + "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/source.json": "6900fdc8a9e95866b8c0d4ad4aba4d4236317b5c1cd04c502df3f0d33afed680", "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", - "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/MODULE.bazel": "b4963dda9b31080be1905ef085ecd7dd6cd47c05c79b9cdf83ade83ab2ab271a", + "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/source.json": "2ff292be6ef3340325ce8a045ecc326e92cbfab47c7cbab4bd85d28971b97ac4", + "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa", "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_apple/3.16.0/MODULE.bazel": "0d1caf0b8375942ce98ea944be754a18874041e4e0459401d925577624d3a54a", + "https://bcr.bazel.build/modules/rules_apple/4.1.0/MODULE.bazel": "76e10fd4a48038d3fc7c5dc6e63b7063bbf5304a2e3bd42edda6ec660eebea68", + "https://bcr.bazel.build/modules/rules_apple/4.1.0/source.json": "8ee81e1708756f81b343a5eb2b2f0b953f1d25c4ab3d4a68dc02754872e80715", "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", - "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", - "https://bcr.bazel.build/modules/rules_cc/0.1.1/source.json": "d61627377bd7dd1da4652063e368d9366fc9a73920bfa396798ad92172cf645c", + "https://bcr.bazel.build/modules/rules_cc/0.1.2/MODULE.bazel": "557ddc3a96858ec0d465a87c0a931054d7dcfd6583af2c7ed3baf494407fd8d0", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.0/MODULE.bazel": "b5c17f90458caae90d2ccd114c81970062946f49f355610ed89bebf954f5783c", + "https://bcr.bazel.build/modules/rules_cc/0.2.13/MODULE.bazel": "eecdd666eda6be16a8d9dc15e44b5c75133405e820f620a234acc4b1fdc5aa37", + "https://bcr.bazel.build/modules/rules_cc/0.2.17/MODULE.bazel": "1849602c86cb60da8613d2de887f9566a6d354a6df6d7009f9d04a14402f9a84", + "https://bcr.bazel.build/modules/rules_cc/0.2.17/source.json": "3832f45d145354049137c0090df04629d9c2b5493dc5c2bf46f1834040133a07", + "https://bcr.bazel.build/modules/rules_cc/0.2.8/MODULE.bazel": "f1df20f0bf22c28192a794f29b501ee2018fa37a3862a1a2132ae2940a23a642", "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", - "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", - "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", - "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", - "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", - "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", - "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", + "https://bcr.bazel.build/modules/rules_java/9.1.0/MODULE.bazel": "ee63f27e36a3fada80342869361182f120a9819c74320e8e65b1e04ba0cd7a9d", + "https://bcr.bazel.build/modules/rules_java/9.1.0/source.json": "da589573c1dee2c9ac4a568b301269a2e8191110ff0345c1a959fa7ea6c4dfd6", "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", - "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", - "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", - "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", - "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_jvm_external/6.7/MODULE.bazel": "e717beabc4d091ecb2c803c2d341b88590e9116b8bf7947915eeb33aab4f96dd", + "https://bcr.bazel.build/modules/rules_jvm_external/6.7/source.json": "5426f412d0a7fc6b611643376c7e4a82dec991491b9ce5cb1cfdd25fe2e92be4", "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", @@ -109,25 +147,39 @@ "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a", "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", - "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", - "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_proto/7.1.0/MODULE.bazel": "002d62d9108f75bb807cd56245d45648f38275cb3a99dcd45dfb864c5d74cb96", + "https://bcr.bazel.build/modules/rules_proto/7.1.0/source.json": "39f89066c12c24097854e8f57ab8558929f9c8d474d34b2c00ac04630ad8940e", "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937", "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", - "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", - "https://bcr.bazel.build/modules/rules_python/0.40.0/source.json": "939d4bd2e3110f27bfb360292986bb79fd8dcefb874358ccd6cdaa7bda029320", + "https://bcr.bazel.build/modules/rules_python/1.3.0/MODULE.bazel": "8361d57eafb67c09b75bf4bbe6be360e1b8f4f18118ab48037f2bd50aa2ccb13", + "https://bcr.bazel.build/modules/rules_python/1.4.1/MODULE.bazel": "8991ad45bdc25018301d6b7e1d3626afc3c8af8aaf4bc04f23d0b99c938b73a6", + "https://bcr.bazel.build/modules/rules_python/1.6.0/MODULE.bazel": "7e04ad8f8d5bea40451cf80b1bd8262552aa73f841415d20db96b7241bd027d8", + "https://bcr.bazel.build/modules/rules_python/1.7.0/MODULE.bazel": "d01f995ecd137abf30238ad9ce97f8fc3ac57289c8b24bd0bf53324d937a14f8", + "https://bcr.bazel.build/modules/rules_python/1.7.0/source.json": "028a084b65dcf8f4dc4f82f8778dbe65df133f234b316828a82e060d81bdce32", "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", - "https://bcr.bazel.build/modules/rules_shell/0.2.0/source.json": "7f27af3c28037d9701487c4744b5448d26537cc66cdef0d8df7ae85411f8de95", + "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/rules_swift/1.16.0/MODULE.bazel": "4a09f199545a60d09895e8281362b1ff3bb08bbde69c6fc87aff5b92fcc916ca", + "https://bcr.bazel.build/modules/rules_swift/2.1.1/MODULE.bazel": "494900a80f944fc7aa61500c2073d9729dff0b764f0e89b824eb746959bc1046", + "https://bcr.bazel.build/modules/rules_swift/2.4.0/MODULE.bazel": "1639617eb1ede28d774d967a738b4a68b0accb40650beadb57c21846beab5efd", + "https://bcr.bazel.build/modules/rules_swift/3.1.2/MODULE.bazel": "72c8f5cf9d26427cee6c76c8e3853eb46ce6b0412a081b2b6db6e8ad56267400", + "https://bcr.bazel.build/modules/rules_swift/3.1.2/source.json": "e85761f3098a6faf40b8187695e3de6d97944e98abd0d8ce579cb2daf6319a66", "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", - "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", - "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", - "https://bcr.bazel.build/modules/stardoc/0.7.1/source.json": "b6500ffcd7b48cd72c29bb67bcac781e12701cc0d6d55d266a652583cfcdab01", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/MODULE.bazel": "75aab2373a4bbe2a1260b9bf2a1ebbdbf872d3bd36f80bff058dccd82e89422f", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/source.json": "5fba48bbe0ba48761f9e9f75f92876cafb5d07c0ce059cc7a8027416de94a05b", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", diff --git a/examples/bazel/package.json b/examples/bazel/package.json index 5e959af5c9..f6f7c74270 100644 --- a/examples/bazel/package.json +++ b/examples/bazel/package.json @@ -7,6 +7,6 @@ "private": true, "devDependencies": { "@angular-builders/bazel": "workspace:*", - "@angular/cli": "21.2.14" + "@angular/cli": "22" } } diff --git a/examples/custom-esbuild/sanity-esbuild-app-esm/e2e/tsconfig.json b/examples/custom-esbuild/sanity-esbuild-app-esm/e2e/tsconfig.json index 79d78d7ec9..5524144dfa 100644 --- a/examples/custom-esbuild/sanity-esbuild-app-esm/e2e/tsconfig.json +++ b/examples/custom-esbuild/sanity-esbuild-app-esm/e2e/tsconfig.json @@ -3,6 +3,7 @@ "include": ["**/*.ts"], "compilerOptions": { "sourceMap": false, + "rootDir": "..", "types": ["cypress"] } } diff --git a/examples/custom-esbuild/sanity-esbuild-app-esm/package.json b/examples/custom-esbuild/sanity-esbuild-app-esm/package.json index 332c756399..420120e7f4 100644 --- a/examples/custom-esbuild/sanity-esbuild-app-esm/package.json +++ b/examples/custom-esbuild/sanity-esbuild-app-esm/package.json @@ -4,11 +4,8 @@ "type": "module", "scripts": { "start": "ng serve", - "start-ts": "TS_NODE_PROJECT=tsconfig.app.json NODE_OPTIONS='--loader ts-node/esm' ng serve", "build": "ng build", - "build-ts": "TS_NODE_PROJECT=tsconfig.app.json NODE_OPTIONS='--loader ts-node/esm' ng build", "test": "ng test", - "test-ts": "TS_NODE_PROJECT=tsconfig.spec.json NODE_OPTIONS='--loader ts-node/esm' ng test", "lint": "ng lint", "e2e": "ng e2e", "cypress:open": "cypress open", @@ -16,34 +13,33 @@ }, "private": true, "dependencies": { - "@angular/animations": "21.2.16", - "@angular/common": "21.2.16", - "@angular/compiler": "21.2.16", - "@angular/core": "21.2.16", - "@angular/forms": "21.2.16", - "@angular/platform-browser": "21.2.16", - "@angular/platform-browser-dynamic": "21.2.16", - "@angular/router": "21.2.16", + "@angular/animations": "22.0.0", + "@angular/common": "22.0.0", + "@angular/compiler": "22.0.0", + "@angular/core": "22.0.0", + "@angular/forms": "22.0.0", + "@angular/platform-browser": "22.0.0", + "@angular/platform-browser-dynamic": "22.0.0", + "@angular/router": "22.0.0", "rxjs": "7.8.2", "tslib": "2.8.1", "zone.js": "0.16.2" }, "devDependencies": { "@angular-builders/custom-esbuild": "workspace:*", - "@angular-devkit/build-angular": "21.2.14", - "@angular-eslint/builder": "21.4.0", - "@angular/cli": "21.2.14", - "@angular/compiler-cli": "21.2.16", - "@angular/language-service": "21.2.16", + "@angular-devkit/build-angular": "22.0.0", + "@angular-eslint/builder": "22.0.0", + "@angular/cli": "22.0.0", + "@angular/compiler-cli": "22.0.0", + "@angular/language-service": "22.0.0", "@eslint/js": "10.0.1", "@types/node": "24.13.1", - "angular-eslint": "21.4.0", + "angular-eslint": "22.0.0", "cypress": "15.16.0", "eslint": "10.4.1", "puppeteer": "25.1.0", - "ts-node": "10.9.2", - "typescript": "5.9.3", - "typescript-eslint": "8.60.1", - "vitest": "4.1.8" + "typescript": "6.0.3", + "typescript-eslint": "8.60.0", + "vitest": "4.1.7" } } diff --git a/examples/custom-esbuild/sanity-esbuild-app-esm/tsconfig.json b/examples/custom-esbuild/sanity-esbuild-app-esm/tsconfig.json index 7220cccea2..ee30ae8648 100644 --- a/examples/custom-esbuild/sanity-esbuild-app-esm/tsconfig.json +++ b/examples/custom-esbuild/sanity-esbuild-app-esm/tsconfig.json @@ -12,6 +12,7 @@ "esModuleInterop": true, "sourceMap": true, "declaration": false, + "ignoreDeprecations": "6.0", "downlevelIteration": true, "experimentalDecorators": true, "moduleResolution": "bundler", diff --git a/examples/custom-esbuild/sanity-esbuild-app/e2e/tsconfig.json b/examples/custom-esbuild/sanity-esbuild-app/e2e/tsconfig.json index 79d78d7ec9..5524144dfa 100644 --- a/examples/custom-esbuild/sanity-esbuild-app/e2e/tsconfig.json +++ b/examples/custom-esbuild/sanity-esbuild-app/e2e/tsconfig.json @@ -3,6 +3,7 @@ "include": ["**/*.ts"], "compilerOptions": { "sourceMap": false, + "rootDir": "..", "types": ["cypress"] } } diff --git a/examples/custom-esbuild/sanity-esbuild-app/package.json b/examples/custom-esbuild/sanity-esbuild-app/package.json index d40426d3c1..54a0c5fed6 100644 --- a/examples/custom-esbuild/sanity-esbuild-app/package.json +++ b/examples/custom-esbuild/sanity-esbuild-app/package.json @@ -13,34 +13,33 @@ }, "private": true, "dependencies": { - "@angular/animations": "21.2.16", - "@angular/common": "21.2.16", - "@angular/compiler": "21.2.16", - "@angular/core": "21.2.16", - "@angular/forms": "21.2.16", - "@angular/platform-browser": "21.2.16", - "@angular/platform-browser-dynamic": "21.2.16", - "@angular/router": "21.2.16", + "@angular/animations": "22.0.0", + "@angular/common": "22.0.0", + "@angular/compiler": "22.0.0", + "@angular/core": "22.0.0", + "@angular/forms": "22.0.0", + "@angular/platform-browser": "22.0.0", + "@angular/platform-browser-dynamic": "22.0.0", + "@angular/router": "22.0.0", "rxjs": "7.8.2", "tslib": "2.8.1", "zone.js": "0.16.2" }, "devDependencies": { "@angular-builders/custom-esbuild": "workspace:*", - "@angular-devkit/build-angular": "21.2.14", - "@angular-eslint/builder": "21.4.0", - "@angular/cli": "21.2.14", - "@angular/compiler-cli": "21.2.16", - "@angular/language-service": "21.2.16", + "@angular-devkit/build-angular": "22.0.0", + "@angular-eslint/builder": "22.0.0", + "@angular/cli": "22.0.0", + "@angular/compiler-cli": "22.0.0", + "@angular/language-service": "22.0.0", "@eslint/js": "10.0.1", "@types/node": "24.13.1", - "angular-eslint": "21.4.0", + "angular-eslint": "22.0.0", "cypress": "15.16.0", "eslint": "10.4.1", "puppeteer": "25.1.0", - "ts-node": "10.9.2", - "typescript": "5.9.3", - "typescript-eslint": "8.60.1", - "vitest": "4.1.8" + "typescript": "6.0.3", + "typescript-eslint": "8.60.0", + "vitest": "4.1.7" } } diff --git a/examples/custom-esbuild/sanity-esbuild-app/tsconfig.json b/examples/custom-esbuild/sanity-esbuild-app/tsconfig.json index 7220cccea2..ee30ae8648 100644 --- a/examples/custom-esbuild/sanity-esbuild-app/tsconfig.json +++ b/examples/custom-esbuild/sanity-esbuild-app/tsconfig.json @@ -12,6 +12,7 @@ "esModuleInterop": true, "sourceMap": true, "declaration": false, + "ignoreDeprecations": "6.0", "downlevelIteration": true, "experimentalDecorators": true, "moduleResolution": "bundler", diff --git a/examples/custom-webpack/full-cycle-app/e2e/tsconfig.json b/examples/custom-webpack/full-cycle-app/e2e/tsconfig.json index 79d78d7ec9..5524144dfa 100644 --- a/examples/custom-webpack/full-cycle-app/e2e/tsconfig.json +++ b/examples/custom-webpack/full-cycle-app/e2e/tsconfig.json @@ -3,6 +3,7 @@ "include": ["**/*.ts"], "compilerOptions": { "sourceMap": false, + "rootDir": "..", "types": ["cypress"] } } diff --git a/examples/custom-webpack/full-cycle-app/extra-webpack.config.json-import.ts b/examples/custom-webpack/full-cycle-app/extra-webpack.config.json-import.ts index 031939b2a8..457b4c1c2f 100644 --- a/examples/custom-webpack/full-cycle-app/extra-webpack.config.json-import.ts +++ b/examples/custom-webpack/full-cycle-app/extra-webpack.config.json-import.ts @@ -1,8 +1,6 @@ import { Configuration } from 'webpack'; -// Importing a JSON file from a TypeScript webpack config. -// Requires resolveJsonModule: true to be set — either in the user's tsconfig or -// injected by the builder's ts-node registration. -// When moduleResolution is 'node' and resolveJsonModule is absent, ts-node throws TS2732. +// Importing a JSON file from a TypeScript webpack config. The builder loads this +// file with jiti, which must resolve JSON imports. // Regression test for: https://github.com/just-jeb/angular-builders/issues/816 import * as pkg from './package.json'; diff --git a/examples/custom-webpack/full-cycle-app/extra-webpack.config.ts b/examples/custom-webpack/full-cycle-app/extra-webpack.config.ts index fd763079d9..efd8dd9c4d 100644 --- a/examples/custom-webpack/full-cycle-app/extra-webpack.config.ts +++ b/examples/custom-webpack/full-cycle-app/extra-webpack.config.ts @@ -1,5 +1,5 @@ import { Configuration, DefinePlugin } from 'webpack'; -import * as HtmlWebpackPlugin from 'html-webpack-plugin'; +import HtmlWebpackPlugin from 'html-webpack-plugin'; import { version } from '@project'; /** diff --git a/examples/custom-webpack/full-cycle-app/func-webpack.config.ts b/examples/custom-webpack/full-cycle-app/func-webpack.config.ts index 59c2621d9d..af6950fbc0 100644 --- a/examples/custom-webpack/full-cycle-app/func-webpack.config.ts +++ b/examples/custom-webpack/full-cycle-app/func-webpack.config.ts @@ -1,6 +1,6 @@ import { Configuration, DefinePlugin } from 'webpack'; import { CustomWebpackBrowserSchema, TargetOptions } from '@angular-builders/custom-webpack'; -import * as HtmlWebpackPlugin from 'html-webpack-plugin'; +import HtmlWebpackPlugin from 'html-webpack-plugin'; import { version } from '@project'; /** @@ -11,6 +11,7 @@ export default ( opts: CustomWebpackBrowserSchema, targetOptions: TargetOptions ) => { + cfg.plugins ??= []; cfg.plugins.push( new HtmlWebpackPlugin({ filename: 'footer.html', diff --git a/examples/custom-webpack/full-cycle-app/package.json b/examples/custom-webpack/full-cycle-app/package.json index 6d14bd1ed7..963adee064 100644 --- a/examples/custom-webpack/full-cycle-app/package.json +++ b/examples/custom-webpack/full-cycle-app/package.json @@ -12,29 +12,29 @@ }, "private": true, "dependencies": { - "@angular/animations": "21.2.16", - "@angular/common": "21.2.16", - "@angular/compiler": "21.2.16", - "@angular/core": "21.2.16", - "@angular/forms": "21.2.16", - "@angular/platform-browser": "21.2.16", - "@angular/platform-browser-dynamic": "21.2.16", - "@angular/router": "21.2.16", + "@angular/animations": "22.0.0", + "@angular/common": "22.0.0", + "@angular/compiler": "22.0.0", + "@angular/core": "22.0.0", + "@angular/forms": "22.0.0", + "@angular/platform-browser": "22.0.0", + "@angular/platform-browser-dynamic": "22.0.0", + "@angular/router": "22.0.0", "rxjs": "7.8.2", "tslib": "2.8.1", "zone.js": "0.16.2" }, "devDependencies": { "@angular-builders/custom-webpack": "workspace:*", - "@angular-devkit/build-angular": "21.2.14", - "@angular-eslint/builder": "21.4.0", - "@angular/cli": "21.2.14", - "@angular/compiler-cli": "21.2.16", - "@angular/language-service": "21.2.16", + "@angular-devkit/build-angular": "22.0.0", + "@angular-eslint/builder": "22.0.0", + "@angular/cli": "22.0.0", + "@angular/compiler-cli": "22.0.0", + "@angular/language-service": "22.0.0", "@eslint/js": "10.0.1", "@types/jasmine": "6.0.0", "@types/node": "24.13.1", - "angular-eslint": "21.4.0", + "angular-eslint": "22.0.0", "cypress": "15.16.0", "eslint": "10.4.1", "html-webpack-plugin": "5.6.7", @@ -45,8 +45,7 @@ "karma-jasmine": "5.1.0", "karma-jasmine-html-reporter": "2.2.0", "puppeteer": "25.1.0", - "ts-node": "10.9.2", - "typescript": "5.9.3", - "typescript-eslint": "8.60.1" + "typescript": "6.0.3", + "typescript-eslint": "8.60.0" } } diff --git a/examples/custom-webpack/full-cycle-app/tsconfig.json b/examples/custom-webpack/full-cycle-app/tsconfig.json index 75be9ee92c..93674166d9 100644 --- a/examples/custom-webpack/full-cycle-app/tsconfig.json +++ b/examples/custom-webpack/full-cycle-app/tsconfig.json @@ -1,6 +1,7 @@ { "compileOnSave": false, "compilerOptions": { + "ignoreDeprecations": "6.0", "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, diff --git a/examples/custom-webpack/sanity-app-esm/e2e/tsconfig.json b/examples/custom-webpack/sanity-app-esm/e2e/tsconfig.json index 79d78d7ec9..5524144dfa 100644 --- a/examples/custom-webpack/sanity-app-esm/e2e/tsconfig.json +++ b/examples/custom-webpack/sanity-app-esm/e2e/tsconfig.json @@ -3,6 +3,7 @@ "include": ["**/*.ts"], "compilerOptions": { "sourceMap": false, + "rootDir": "..", "types": ["cypress"] } } diff --git a/examples/custom-webpack/sanity-app-esm/package.json b/examples/custom-webpack/sanity-app-esm/package.json index 77bfa0a874..9131711904 100644 --- a/examples/custom-webpack/sanity-app-esm/package.json +++ b/examples/custom-webpack/sanity-app-esm/package.json @@ -5,9 +5,7 @@ "scripts": { "ng": "ng", "start": "ng serve", - "start-ts": "TS_NODE_PROJECT=tsconfig.app.json NODE_OPTIONS='--loader ts-node/esm' ng serve", "build": "ng build", - "build-ts": "TS_NODE_PROJECT=tsconfig.app.json NODE_OPTIONS='--loader ts-node/esm' ng build", "watch": "ng build --watch --configuration development", "test": "ng test", "e2e": "ng e2e", @@ -16,23 +14,23 @@ }, "private": true, "dependencies": { - "@angular/animations": "21.2.16", - "@angular/common": "21.2.16", - "@angular/compiler": "21.2.16", - "@angular/core": "21.2.16", - "@angular/forms": "21.2.16", - "@angular/platform-browser": "21.2.16", - "@angular/platform-browser-dynamic": "21.2.16", - "@angular/router": "21.2.16", + "@angular/animations": "22.0.0", + "@angular/common": "22.0.0", + "@angular/compiler": "22.0.0", + "@angular/core": "22.0.0", + "@angular/forms": "22.0.0", + "@angular/platform-browser": "22.0.0", + "@angular/platform-browser-dynamic": "22.0.0", + "@angular/router": "22.0.0", "rxjs": "7.8.2", "tslib": "2.8.1", "zone.js": "0.16.2" }, "devDependencies": { "@angular-builders/custom-webpack": "workspace:*", - "@angular-devkit/build-angular": "21.2.14", - "@angular/cli": "21.2.14", - "@angular/compiler-cli": "21.2.16", + "@angular-devkit/build-angular": "22.0.0", + "@angular/cli": "22.0.0", + "@angular/compiler-cli": "22.0.0", "@cypress/schematic": "5.0.0", "@types/jasmine": "6.0.0", "@types/node": "24.13.1", @@ -43,7 +41,7 @@ "karma-coverage": "2.2.1", "karma-jasmine": "5.1.0", "karma-jasmine-html-reporter": "2.2.0", - "puppeteer": "25.1.0", - "typescript": "5.9.3" + "puppeteer": "24.43.1", + "typescript": "6.0.3" } } diff --git a/examples/custom-webpack/sanity-app-esm/tsconfig.json b/examples/custom-webpack/sanity-app-esm/tsconfig.json index 01aa4143c7..6787f9c758 100644 --- a/examples/custom-webpack/sanity-app-esm/tsconfig.json +++ b/examples/custom-webpack/sanity-app-esm/tsconfig.json @@ -2,6 +2,7 @@ { "compileOnSave": false, "compilerOptions": { + "ignoreDeprecations": "6.0", "baseUrl": "./", "outDir": "./dist/out-tsc", "forceConsistentCasingInFileNames": true, diff --git a/examples/custom-webpack/sanity-app/e2e/tsconfig.json b/examples/custom-webpack/sanity-app/e2e/tsconfig.json index 79d78d7ec9..5524144dfa 100644 --- a/examples/custom-webpack/sanity-app/e2e/tsconfig.json +++ b/examples/custom-webpack/sanity-app/e2e/tsconfig.json @@ -3,6 +3,7 @@ "include": ["**/*.ts"], "compilerOptions": { "sourceMap": false, + "rootDir": "..", "types": ["cypress"] } } diff --git a/examples/custom-webpack/sanity-app/extra-webpack.config.ts b/examples/custom-webpack/sanity-app/extra-webpack.config.ts index efc2c56b44..75a72cabeb 100644 --- a/examples/custom-webpack/sanity-app/extra-webpack.config.ts +++ b/examples/custom-webpack/sanity-app/extra-webpack.config.ts @@ -1,6 +1,5 @@ import { Configuration } from 'webpack'; -// JSON import: verifies that ts-node is registered with resolveJsonModule:true (regression for #816). -// Without the fix, this fails with TS2307 when the project tsconfig lacks resolveJsonModule. +// JSON import from a TypeScript webpack config, loaded via jiti (regression for #816). import { name } from './package.json'; export default { diff --git a/examples/custom-webpack/sanity-app/package.json b/examples/custom-webpack/sanity-app/package.json index b2dba199cb..2643ba482b 100644 --- a/examples/custom-webpack/sanity-app/package.json +++ b/examples/custom-webpack/sanity-app/package.json @@ -12,29 +12,29 @@ }, "private": true, "dependencies": { - "@angular/animations": "21.2.16", - "@angular/common": "21.2.16", - "@angular/compiler": "21.2.16", - "@angular/core": "21.2.16", - "@angular/forms": "21.2.16", - "@angular/platform-browser": "21.2.16", - "@angular/platform-browser-dynamic": "21.2.16", - "@angular/router": "21.2.16", + "@angular/animations": "22.0.0", + "@angular/common": "22.0.0", + "@angular/compiler": "22.0.0", + "@angular/core": "22.0.0", + "@angular/forms": "22.0.0", + "@angular/platform-browser": "22.0.0", + "@angular/platform-browser-dynamic": "22.0.0", + "@angular/router": "22.0.0", "rxjs": "7.8.2", "tslib": "2.8.1", "zone.js": "0.16.2" }, "devDependencies": { "@angular-builders/custom-webpack": "workspace:*", - "@angular-devkit/build-angular": "21.2.14", - "@angular-eslint/builder": "21.4.0", - "@angular/cli": "21.2.14", - "@angular/compiler-cli": "21.2.16", - "@angular/language-service": "21.2.16", + "@angular-devkit/build-angular": "22.0.0", + "@angular-eslint/builder": "22.0.0", + "@angular/cli": "22.0.0", + "@angular/compiler-cli": "22.0.0", + "@angular/language-service": "22.0.0", "@eslint/js": "10.0.1", "@types/jasmine": "6.0.0", "@types/node": "24.13.1", - "angular-eslint": "21.4.0", + "angular-eslint": "22.0.0", "cypress": "15.16.0", "eslint": "10.4.1", "jasmine-core": "6.3.0", @@ -44,8 +44,7 @@ "karma-jasmine": "5.1.0", "karma-jasmine-html-reporter": "2.2.0", "puppeteer": "25.1.0", - "ts-node": "10.9.2", - "typescript": "5.9.3", - "typescript-eslint": "8.60.1" + "typescript": "6.0.3", + "typescript-eslint": "8.60.0" } } diff --git a/examples/custom-webpack/sanity-app/tsconfig.json b/examples/custom-webpack/sanity-app/tsconfig.json index e0da2e266e..d552228f79 100644 --- a/examples/custom-webpack/sanity-app/tsconfig.json +++ b/examples/custom-webpack/sanity-app/tsconfig.json @@ -1,6 +1,7 @@ { "compileOnSave": false, "compilerOptions": { + "ignoreDeprecations": "6.0", "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, diff --git a/examples/jest/multiple-apps/package.json b/examples/jest/multiple-apps/package.json index 716b625e80..dbb49e6ec8 100644 --- a/examples/jest/multiple-apps/package.json +++ b/examples/jest/multiple-apps/package.json @@ -12,37 +12,36 @@ }, "private": true, "dependencies": { - "@angular/animations": "21.2.16", - "@angular/common": "21.2.16", - "@angular/compiler": "21.2.16", - "@angular/core": "21.2.16", - "@angular/forms": "21.2.16", - "@angular/platform-browser": "21.2.16", - "@angular/platform-browser-dynamic": "21.2.16", - "@angular/router": "21.2.16", + "@angular/animations": "22.0.0", + "@angular/common": "22.0.0", + "@angular/compiler": "22.0.0", + "@angular/core": "22.0.0", + "@angular/forms": "22.0.0", + "@angular/platform-browser": "22.0.0", + "@angular/platform-browser-dynamic": "22.0.0", + "@angular/router": "22.0.0", "rxjs": "7.8.2", "tslib": "2.8.1", "zone.js": "0.16.2" }, "devDependencies": { "@angular-builders/jest": "workspace:*", - "@angular-devkit/build-angular": "21.2.14", - "@angular-eslint/builder": "21.4.0", - "@angular/cli": "21.2.14", - "@angular/compiler-cli": "21.2.16", - "@angular/language-service": "21.2.16", + "@angular-devkit/build-angular": "22.0.0", + "@angular-eslint/builder": "22.0.0", + "@angular/cli": "22.0.0", + "@angular/compiler-cli": "22.0.0", + "@angular/language-service": "22.0.0", "@eslint/js": "10.0.1", "@types/jest": "30.0.0", "@types/node": "24.13.1", - "angular-eslint": "21.4.0", + "angular-eslint": "22.0.0", "cypress": "15.16.0", "eslint": "10.4.1", "jest": "30.4.2", "jest-environment-jsdom": "30.4.1", "jsdom": "29.1.1", - "ng-packagr": "21.2.5", - "ts-node": "10.9.2", - "typescript": "5.9.3", - "typescript-eslint": "8.60.1" + "ng-packagr": "22.0.0", + "typescript": "6.0.3", + "typescript-eslint": "8.60.0" } } diff --git a/examples/jest/multiple-apps/projects/my-first-app/e2e/tsconfig.json b/examples/jest/multiple-apps/projects/my-first-app/e2e/tsconfig.json index 34df1dd957..6db20962b4 100644 --- a/examples/jest/multiple-apps/projects/my-first-app/e2e/tsconfig.json +++ b/examples/jest/multiple-apps/projects/my-first-app/e2e/tsconfig.json @@ -3,6 +3,7 @@ "include": ["**/*.ts"], "compilerOptions": { "sourceMap": false, + "rootDir": "..", "types": ["cypress"] } } diff --git a/examples/jest/multiple-apps/projects/my-second-app/e2e/tsconfig.json b/examples/jest/multiple-apps/projects/my-second-app/e2e/tsconfig.json index 34df1dd957..6db20962b4 100644 --- a/examples/jest/multiple-apps/projects/my-second-app/e2e/tsconfig.json +++ b/examples/jest/multiple-apps/projects/my-second-app/e2e/tsconfig.json @@ -3,6 +3,7 @@ "include": ["**/*.ts"], "compilerOptions": { "sourceMap": false, + "rootDir": "..", "types": ["cypress"] } } diff --git a/examples/jest/multiple-apps/tsconfig.json b/examples/jest/multiple-apps/tsconfig.json index d63a6e324b..457a0f797f 100644 --- a/examples/jest/multiple-apps/tsconfig.json +++ b/examples/jest/multiple-apps/tsconfig.json @@ -1,6 +1,7 @@ { "compileOnSave": false, "compilerOptions": { + "ignoreDeprecations": "6.0", "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, diff --git a/examples/jest/simple-app/e2e/tsconfig.json b/examples/jest/simple-app/e2e/tsconfig.json index 79d78d7ec9..5524144dfa 100644 --- a/examples/jest/simple-app/e2e/tsconfig.json +++ b/examples/jest/simple-app/e2e/tsconfig.json @@ -3,6 +3,7 @@ "include": ["**/*.ts"], "compilerOptions": { "sourceMap": false, + "rootDir": "..", "types": ["cypress"] } } diff --git a/examples/jest/simple-app/package.json b/examples/jest/simple-app/package.json index 37cfb0e95f..958dbcf948 100644 --- a/examples/jest/simple-app/package.json +++ b/examples/jest/simple-app/package.json @@ -15,29 +15,29 @@ }, "private": true, "dependencies": { - "@angular/animations": "21.2.16", - "@angular/common": "21.2.16", - "@angular/compiler": "21.2.16", - "@angular/core": "21.2.16", - "@angular/forms": "21.2.16", - "@angular/platform-browser": "21.2.16", - "@angular/platform-browser-dynamic": "21.2.16", - "@angular/router": "21.2.16", + "@angular/animations": "22.0.0", + "@angular/common": "22.0.0", + "@angular/compiler": "22.0.0", + "@angular/core": "22.0.0", + "@angular/forms": "22.0.0", + "@angular/platform-browser": "22.0.0", + "@angular/platform-browser-dynamic": "22.0.0", + "@angular/router": "22.0.0", "rxjs": "7.8.2", "tslib": "2.8.1", "zone.js": "0.16.2" }, "devDependencies": { "@angular-builders/jest": "workspace:*", - "@angular-devkit/build-angular": "21.2.14", - "@angular-eslint/builder": "21.4.0", - "@angular/cli": "21.2.14", - "@angular/compiler-cli": "21.2.16", - "@angular/language-service": "21.2.16", + "@angular-devkit/build-angular": "22.0.0", + "@angular-eslint/builder": "22.0.0", + "@angular/cli": "22.0.0", + "@angular/compiler-cli": "22.0.0", + "@angular/language-service": "22.0.0", "@eslint/js": "10.0.1", "@types/jasmine": "6.0.0", "@types/node": "24.13.1", - "angular-eslint": "21.4.0", + "angular-eslint": "22.0.0", "cypress": "15.16.0", "eslint": "10.4.1", "jasmine-core": "6.3.0", @@ -45,8 +45,7 @@ "jest-environment-jsdom": "30.4.1", "jest-junit": "17.0.0", "jsdom": "29.1.1", - "ts-node": "10.9.2", - "typescript": "5.9.3", - "typescript-eslint": "8.60.1" + "typescript": "6.0.3", + "typescript-eslint": "8.60.0" } } diff --git a/examples/jest/simple-app/tsconfig.json b/examples/jest/simple-app/tsconfig.json index 22ccf9fc07..79032cccd3 100644 --- a/examples/jest/simple-app/tsconfig.json +++ b/examples/jest/simple-app/tsconfig.json @@ -1,6 +1,7 @@ { "compileOnSave": false, "compilerOptions": { + "ignoreDeprecations": "6.0", "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, diff --git a/examples/timestamp/e2e/tsconfig.json b/examples/timestamp/e2e/tsconfig.json index 79d78d7ec9..5524144dfa 100644 --- a/examples/timestamp/e2e/tsconfig.json +++ b/examples/timestamp/e2e/tsconfig.json @@ -3,6 +3,7 @@ "include": ["**/*.ts"], "compilerOptions": { "sourceMap": false, + "rootDir": "..", "types": ["cypress"] } } diff --git a/examples/timestamp/package.json b/examples/timestamp/package.json index 3fc2696c31..8c63e42f83 100644 --- a/examples/timestamp/package.json +++ b/examples/timestamp/package.json @@ -13,30 +13,30 @@ }, "private": true, "dependencies": { - "@angular/animations": "21.2.16", - "@angular/common": "21.2.16", - "@angular/compiler": "21.2.16", - "@angular/core": "21.2.16", - "@angular/forms": "21.2.16", - "@angular/platform-browser": "21.2.16", - "@angular/platform-browser-dynamic": "21.2.16", - "@angular/router": "21.2.16", + "@angular/animations": "22.0.0", + "@angular/common": "22.0.0", + "@angular/compiler": "22.0.0", + "@angular/core": "22.0.0", + "@angular/forms": "22.0.0", + "@angular/platform-browser": "22.0.0", + "@angular/platform-browser-dynamic": "22.0.0", + "@angular/router": "22.0.0", "rxjs": "7.8.2", "tslib": "2.8.1", "zone.js": "0.16.2" }, "devDependencies": { "@angular-builders/timestamp": "workspace:*", - "@angular-devkit/build-angular": "21.2.14", - "@angular-eslint/builder": "21.4.0", - "@angular/cli": "21.2.14", - "@angular/compiler-cli": "21.2.16", - "@angular/language-service": "21.2.16", + "@angular-devkit/build-angular": "22.0.0", + "@angular-eslint/builder": "22.0.0", + "@angular/cli": "22.0.0", + "@angular/compiler-cli": "22.0.0", + "@angular/language-service": "22.0.0", "@cypress/schematic": "5.0.0", "@eslint/js": "10.0.1", "@types/jasmine": "6.0.0", "@types/node": "24.13.1", - "angular-eslint": "21.4.0", + "angular-eslint": "22.0.0", "cypress": "15.16.0", "eslint": "10.4.1", "jasmine-core": "6.3.0", @@ -45,8 +45,7 @@ "karma-coverage-istanbul-reporter": "3.0.3", "karma-jasmine": "5.1.0", "karma-jasmine-html-reporter": "2.2.0", - "ts-node": "10.9.2", - "typescript": "5.9.3", - "typescript-eslint": "8.60.1" + "typescript": "6.0.3", + "typescript-eslint": "8.60.0" } } diff --git a/examples/timestamp/tsconfig.json b/examples/timestamp/tsconfig.json index e0da2e266e..d552228f79 100644 --- a/examples/timestamp/tsconfig.json +++ b/examples/timestamp/tsconfig.json @@ -1,6 +1,7 @@ { "compileOnSave": false, "compilerOptions": { + "ignoreDeprecations": "6.0", "baseUrl": "./", "outDir": "./dist/out-tsc", "sourceMap": true, diff --git a/jest-ut.config.js b/jest-ut.config.js index 9af158762f..0545645838 100644 --- a/jest-ut.config.js +++ b/jest-ut.config.js @@ -1,4 +1,15 @@ module.exports = { ...require('./jest-common.config'), testRegex: `${process.cwd()}/(?!(e2e|examples)/).+\\.spec\\.ts`, + // Stub ESM-only `ora` (pulled in by @angular-devkit/schematics' package-manager + // task executor). Tests never exercise that executor, so a no-op shim is enough. + moduleNameMapper: { + '^ora$': '/__mocks__/ora.js', + // Redirect @angular-builders/common subpath exports to the worktree build so + // schematics specs can import from the in-tree dist without a yarn re-install. + '^@angular-builders/common/schematics/testing$': + '/packages/common/dist/schematics/testing.js', + '^@angular-builders/common/schematics$': + '/packages/common/dist/schematics/index.js', + }, }; diff --git a/package.json b/package.json index af82e0fc37..6f1c42914b 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "update:examples": "yarn workspaces foreach -A --exclude '@angular-builders/*' run update:example" }, "devDependencies": { - "@angular/build": "^21.0.0", + "@angular/build": "^22.0.0", "@commitlint/cli": "^21.0.0", "@commitlint/config-conventional": "^21.0.0", "@lerna-lite/cli": "^5.0.0", @@ -41,6 +41,7 @@ "@types/lodash": "^4.14.118", "@types/node": "^24.0.0", "husky": "^9.0.0", + "jiti": "^2.7.0", "lint-staged": "^17.0.0", "lodash": "^4.17.15", "prettier": "^3.0.0", diff --git a/packages/bazel/package.json b/packages/bazel/package.json index 43725008be..3127d2200d 100644 --- a/packages/bazel/package.json +++ b/packages/bazel/package.json @@ -33,15 +33,16 @@ "generate": "quicktype -s schema src/schema.json -o src/schema.ts" }, "dependencies": { - "@angular-devkit/architect": ">=0.2100.0 < 0.2200.0", + "@angular-devkit/architect": ">=0.2200.0 < 0.2300.0", "@bazel/bazelisk": "^1.26.0", "@bazel/ibazel": "^0.28.0" }, "devDependencies": { - "@angular-devkit/core": "^21.0.0", + "@angular-devkit/core": "^22.0.0", + "@types/node": "^24.0.0", "cpy-cli": "^7.0.0", "quicktype": "^15.0.260", "rimraf": "^6.0.0", - "typescript": "5.9.3" + "typescript": "6.0.3" } } diff --git a/packages/bazel/tsconfig.json b/packages/bazel/tsconfig.json index 75d8b2be38..a5abe05291 100644 --- a/packages/bazel/tsconfig.json +++ b/packages/bazel/tsconfig.json @@ -2,7 +2,9 @@ "extends": "../../tsconfig.json", "compilerOptions": { "outDir": "dist", - "noImplicitAny": false + "rootDir": "src", + "noImplicitAny": false, + "types": ["node"] }, "files": [ "src/index.ts" diff --git a/packages/common/.gitignore b/packages/common/.gitignore index 28ffec918d..f6349d814f 100644 --- a/packages/common/.gitignore +++ b/packages/common/.gitignore @@ -15,3 +15,6 @@ dist *.js !karma.conf.js *.js.map + +# Test fixtures for loadModule (not build output) +!src/load-module.fixtures/**/*.js diff --git a/packages/common/AGENTS.md b/packages/common/AGENTS.md index b9883891de..c826a92984 100644 --- a/packages/common/AGENTS.md +++ b/packages/common/AGENTS.md @@ -4,12 +4,12 @@ ## At a Glance -| | | -| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Type** | Shared Kernel | -| **Owns** | CJS/ESM/TS module loading with ts-node registration, package path resolution. Scope may grow if common patterns emerge across builders. (Source: SME interview, Jeb, 2026-02-16) | -| **Does NOT own** | Builder logic, schema merging, CLI integration | -| **Users** | `custom-esbuild`, `custom-webpack`, `jest` (via `workspace:*` dependency) | +| | | +| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Type** | Shared Kernel | +| **Owns** | CJS/ESM/TS module loading via jiti, package path resolution. Scope may grow if common patterns emerge across builders. (Source: SME interview, Jeb, 2026-02-16) | +| **Does NOT own** | Builder logic, schema merging, CLI integration | +| **Users** | `custom-esbuild`, `custom-webpack`, `jest` (via `workspace:*` dependency) | ## Navigation @@ -21,19 +21,19 @@ ## Entry Points & Contracts - `loadModule(modulePath, tsConfig, logger): Promise` -- Loads a user-provided module (plugin, config, transformer) regardless of format. - - **Guarantees:** Handles four extension cases (see `src/load-module.ts` lines 83-122): `.mjs` (ESM via dynamic import), `.cjs` (CJS via `require`), `.ts` (TypeScript via ts-node, with ESM fallback on `ERR_REQUIRE_ESM`), and a default case for `.js` and all other extensions (try CJS first, fall back to ESM on `ERR_REQUIRE_ESM`). For `.ts` and `.js` files, unwraps default exports: `require(path).default || require(path)`. (Source: code investigation, 2026-02-16) - - **Does NOT handle:** `.jsx`, `.tsx`, `.mts`, `.cts` extensions. JSON files are not explicitly handled but may work through Node's native `require()`. (Source: code investigation, 2026-02-16) - - **Requires:** Absolute `modulePath`. A valid `tsConfig` path (used for ts-node registration). An Angular `LoggerApi` instance. + - **Guarantees:** Loads `.ts`, `.mts`, `.cts`, `.js`, `.mjs`, and `.cjs` uniformly via [jiti](https://github.com/unjs/jiti) (`jiti.import`). TypeScript is **transpiled, not type-checked**. Default exports are unwrapped via jiti's `interopDefault` (`mod.default ?? mod`): a single default is returned; a nested `{ default: ... }` is preserved. TypeScript path aliases (`baseUrl`/`paths`) are resolved from the passed `tsConfig`. (Source: code investigation, 2026-06-07) + - **Does NOT handle:** `.jsx`/`.tsx`. Build-time type-checking (run `tsc --noEmit` separately). (Source: code investigation, 2026-06-07) + - **Requires:** Absolute `modulePath`. A `tsConfig` path (used for path-alias resolution). An Angular `LoggerApi` instance (retained for API compatibility; currently unused). (Source: code investigation, 2026-06-07) - `resolvePackagePath(packageName, subPath): string` -- Resolves a file path within an installed npm package by locating its `package.json` first. - **Guarantees:** Returns the absolute joined path. - **Requires:** The package must be installed and resolvable via `require.resolve`. -Enforcement: All user-supplied module loading across the monorepo MUST go through `loadModule`. Direct `require()` or `import()` of user config files bypasses ts-node registration and ESM handling. +Enforcement: All user-supplied module loading across the monorepo MUST go through `loadModule`. Direct `require()` or `import()` of user config files bypasses jiti's TypeScript transpilation and ESM/CJS interop. ## Invariants -**MUST:** ts-node is registered at most once per process. A second call with a different `tsConfig` logs a warning and is silently skipped -- the first registration wins. Registering with the wrong tsconfig first breaks everything. There is a known open issue related to this edge case. (Source: SME interview, Jeb, 2026-02-16) +**MUST:** Each distinct `tsConfig` gets its own isolated jiti instance (cached by tsconfig path). Loads with different tsconfigs do not interfere -- there is no process-global "first tsconfig wins" registration (the old ts-node limitation, now removed). (Source: code investigation, 2026-06-07) **MUST NEVER:** Call `loadModule` with a relative path. The caller is responsible for joining `workspaceRoot` with the user-provided relative path before passing it in. @@ -56,22 +56,23 @@ const config = raw.default; // undefined if loadModule already unwrapped ## Pitfalls -| Trap | Reality | -| -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| "I can register ts-node with a different tsconfig for a second file" | ts-node registration is process-global and sticky. The first tsConfig wins; subsequent calls with a different tsConfig are silently ignored with a warning log. `_tsNodeRegister` (lines 5-43) only registers once. (Source: code investigation, 2026-02-16) | -| "Default export unwrapping is simple" | `loadModule` does `require(path).default \|\| require(path)` for `.ts` and `.js` files (lines 96, 111). If a module exports `{ default: { default: ... } }`, the outer default is unwrapped, returning the inner `{ default: ... }` object -- not the deeply nested value. Users exporting double-wrapped defaults will get unexpected results. (Source: code investigation, 2026-02-16) | -| "ESM loading uses standard `import()`" | TypeScript unconditionally downlevels `import()` to `require()`, which cannot load ESM modules. The code uses `new Function('modulePath', 'return import(modulePath)')` to create the import expression at runtime, preventing TypeScript from transforming it. This is the same pattern used by Angular CLI internally. Can be dropped once TypeScript supports preserving dynamic imports (see JSDoc at `src/load-module.ts` lines 57-71). Do not "simplify" this. (Source: code investigation, 2026-02-16) | -| "`resolvePackagePath` is just `path.join`" | It resolves from the package's actual installed location (via `require.resolve` on `package.json`), not from the workspace root. This matters when packages are hoisted differently. | -| "ESM/CJS interop is straightforward" | ESM/CJS interop has been a significant pain point with multiple abandoned approaches before landing on the current implementation. Do not attempt to "simplify" the loading logic without understanding the full history of failures. (Source: SME interview, Jeb, 2026-02-16) | +| Trap | Reality | +| --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| "I can pin ts-node compiler options / one tsconfig per process" | There is no ts-node anymore. Loading is via jiti with one isolated instance per `tsConfig` (cached by path), so different configs/transforms resolve against their own tsconfig. (Source: code investigation, 2026-06-07) | +| "Default export unwrapping is simple" | `loadModule` returns `mod.default ?? mod` over jiti's `interopDefault` result. A single default export is unwrapped; a nested `{ default: ... }` is preserved (covered by `load-module.spec.ts`). Double-wrapped defaults still yield the inner object, not the deepest value. (Source: code investigation, 2026-06-07) | +| "jiti's `tsconfigPaths` option honors any tsconfig path" | It does not -- jiti/`get-tsconfig` treats the path as a search location and only loads a file literally named `tsconfig.json`, walking up otherwise. Build targets use names like `tsconfig.app.json`, so `loadModule` parses the exact `tsConfig` via `get-tsconfig`'s `parseTsconfig` and builds jiti's `alias` map itself. Do not switch to `tsconfigPaths: `. (Source: code investigation, 2026-06-07) | +| "`resolvePackagePath` is just `path.join`" | It resolves from the package's actual installed location (via `require.resolve` on `package.json`), not from the workspace root. This matters when packages are hoisted differently. | +| "ESM/CJS interop is straightforward" | ESM/CJS interop has been a significant pain point with multiple abandoned approaches before landing on the current implementation. Do not attempt to "simplify" the loading logic without understanding the full history of failures. (Source: SME interview, Jeb, 2026-02-16) | ## Testing ```bash -# No dedicated unit tests -- tested transitively through consumer packages +# Loader unit tests (all module formats + #816/#2025 regressions): +npx jest --config jest-ut.config.js packages/common/src/load-module.spec.ts yarn build # from packages/common ``` ## Dependencies **Breaks if changed:** `custom-esbuild` (plugin loading), `custom-webpack` (config + transform loading), `jest` (listed dependency but indirect usage) -**Breaks us if changed:** `ts-node`, `tsconfig-paths`, `@angular-devkit/core` (for `logging.LoggerApi` type) +**Breaks us if changed:** `jiti` (module loading + TS transform), `get-tsconfig` (tsconfig path-alias parsing), `@angular-devkit/core` (for `logging.LoggerApi` type) diff --git a/packages/common/package.json b/packages/common/package.json index 4117c7242e..225d560b0b 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -3,6 +3,17 @@ "version": "5.0.4", "description": "Common utility functions shared between @angular-builders packages", "main": "dist/index.js", + "exports": { + ".": { + "default": "./dist/index.js" + }, + "./schematics": { + "default": "./dist/schematics/index.js" + }, + "./schematics/testing": { + "default": "./dist/schematics/testing.js" + } + }, "files": [ "dist" ], @@ -20,16 +31,21 @@ }, "scripts": { "prebuild": "yarn clean", - "build": "yarn prebuild && tsc", - "clean": "rimraf dist" + "build": "yarn prebuild && tsc && tsc -p tsconfig.schematics.json && yarn copy:schematics", + "copy:schematics": "copyfiles -u 2 \"src/schematics/**/*.json\" dist/schematics && copyfiles -u 2 \"src/schematics/**/files/**\" dist/schematics", + "clean": "rimraf dist", + "test": "jest --config ../../jest-ut.config.js packages/common/src/load-module.spec.ts" }, "dependencies": { - "@angular-devkit/core": "^21.0.0", - "ts-node": "^10.0.0", - "tsconfig-paths": "^4.2.0" + "@angular-devkit/core": "^22.0.0", + "@angular-devkit/schematics": "^22.0.0", + "@schematics/angular": "^22.0.0", + "get-tsconfig": "^4.10.0", + "jiti": "^2.7.0" }, "devDependencies": { + "copyfiles": "^2.4.1", "rimraf": "^6.0.0", - "typescript": "5.9.3" + "typescript": "6.0.3" } } diff --git a/packages/common/src/load-module.fixtures/aliased-alt/value.ts b/packages/common/src/load-module.fixtures/aliased-alt/value.ts new file mode 100644 index 0000000000..3e201e5e36 --- /dev/null +++ b/packages/common/src/load-module.fixtures/aliased-alt/value.ts @@ -0,0 +1 @@ +export const value = 'aliased-alt'; diff --git a/packages/common/src/load-module.fixtures/aliased/value.ts b/packages/common/src/load-module.fixtures/aliased/value.ts new file mode 100644 index 0000000000..11ab779388 --- /dev/null +++ b/packages/common/src/load-module.fixtures/aliased/value.ts @@ -0,0 +1 @@ +export const value = 'aliased-base'; diff --git a/packages/common/src/load-module.fixtures/config-alias-alt.ts b/packages/common/src/load-module.fixtures/config-alias-alt.ts new file mode 100644 index 0000000000..9d0d1439d4 --- /dev/null +++ b/packages/common/src/load-module.fixtures/config-alias-alt.ts @@ -0,0 +1,2 @@ +import { value } from '@fixtures/value'; +export default { name: value }; diff --git a/packages/common/src/load-module.fixtures/config-alias.ts b/packages/common/src/load-module.fixtures/config-alias.ts new file mode 100644 index 0000000000..9d0d1439d4 --- /dev/null +++ b/packages/common/src/load-module.fixtures/config-alias.ts @@ -0,0 +1,2 @@ +import { value } from '@fixtures/value'; +export default { name: value }; diff --git a/packages/common/src/load-module.fixtures/config-double-default.ts b/packages/common/src/load-module.fixtures/config-double-default.ts new file mode 100644 index 0000000000..58fad85d2e --- /dev/null +++ b/packages/common/src/load-module.fixtures/config-double-default.ts @@ -0,0 +1 @@ +export default { default: { name: 'inner' } }; diff --git a/packages/common/src/load-module.fixtures/config-json-import.ts b/packages/common/src/load-module.fixtures/config-json-import.ts new file mode 100644 index 0000000000..68a34b547a --- /dev/null +++ b/packages/common/src/load-module.fixtures/config-json-import.ts @@ -0,0 +1,2 @@ +import data from './data.json'; +export default { name: data.name }; diff --git a/packages/common/src/load-module.fixtures/config-tla.mjs b/packages/common/src/load-module.fixtures/config-tla.mjs new file mode 100644 index 0000000000..ac58ff5d7e --- /dev/null +++ b/packages/common/src/load-module.fixtures/config-tla.mjs @@ -0,0 +1,2 @@ +const value = await Promise.resolve('tla'); +export default { name: value }; diff --git a/packages/common/src/load-module.fixtures/config.cjs b/packages/common/src/load-module.fixtures/config.cjs new file mode 100644 index 0000000000..824fedc801 --- /dev/null +++ b/packages/common/src/load-module.fixtures/config.cjs @@ -0,0 +1 @@ +module.exports = { name: 'cjs' }; diff --git a/packages/common/src/load-module.fixtures/config.cts b/packages/common/src/load-module.fixtures/config.cts new file mode 100644 index 0000000000..4e755edcef --- /dev/null +++ b/packages/common/src/load-module.fixtures/config.cts @@ -0,0 +1 @@ +module.exports = { name: 'cts' }; diff --git a/packages/common/src/load-module.fixtures/config.js b/packages/common/src/load-module.fixtures/config.js new file mode 100644 index 0000000000..3ef09ed115 --- /dev/null +++ b/packages/common/src/load-module.fixtures/config.js @@ -0,0 +1 @@ +module.exports = { name: 'js-cjs' }; diff --git a/packages/common/src/load-module.fixtures/config.mjs b/packages/common/src/load-module.fixtures/config.mjs new file mode 100644 index 0000000000..878c65885c --- /dev/null +++ b/packages/common/src/load-module.fixtures/config.mjs @@ -0,0 +1 @@ +export default { name: 'mjs' }; diff --git a/packages/common/src/load-module.fixtures/config.mts b/packages/common/src/load-module.fixtures/config.mts new file mode 100644 index 0000000000..f7e5d0566c --- /dev/null +++ b/packages/common/src/load-module.fixtures/config.mts @@ -0,0 +1 @@ +export default { name: 'mts' }; diff --git a/packages/common/src/load-module.fixtures/config.ts b/packages/common/src/load-module.fixtures/config.ts new file mode 100644 index 0000000000..fcce4a2526 --- /dev/null +++ b/packages/common/src/load-module.fixtures/config.ts @@ -0,0 +1 @@ +export default { name: 'ts' }; diff --git a/packages/common/src/load-module.fixtures/data.json b/packages/common/src/load-module.fixtures/data.json new file mode 100644 index 0000000000..0a4806cbf0 --- /dev/null +++ b/packages/common/src/load-module.fixtures/data.json @@ -0,0 +1 @@ +{ "name": "from-json" } diff --git a/packages/common/src/load-module.fixtures/tsconfig.alt.json b/packages/common/src/load-module.fixtures/tsconfig.alt.json new file mode 100644 index 0000000000..8e716a8557 --- /dev/null +++ b/packages/common/src/load-module.fixtures/tsconfig.alt.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "module": "ESNext", + "moduleResolution": "bundler", + "baseUrl": ".", + "paths": { + "@fixtures/value": ["./aliased-alt/value.ts"] + } + } +} diff --git a/packages/common/src/load-module.fixtures/tsconfig.json b/packages/common/src/load-module.fixtures/tsconfig.json new file mode 100644 index 0000000000..aedd3e4eb0 --- /dev/null +++ b/packages/common/src/load-module.fixtures/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "module": "ESNext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "baseUrl": ".", + "paths": { + "@fixtures/value": ["./aliased/value.ts"] + } + } +} diff --git a/packages/common/src/load-module.spec.ts b/packages/common/src/load-module.spec.ts new file mode 100644 index 0000000000..188308431b --- /dev/null +++ b/packages/common/src/load-module.spec.ts @@ -0,0 +1,70 @@ +import { resolve } from 'node:path'; +import type { logging } from '@angular-devkit/core'; +import { loadModule } from './load-module'; + +const FIXTURES = resolve(__dirname, 'load-module.fixtures'); +const TSCONFIG = resolve(FIXTURES, 'tsconfig.json'); +const TSCONFIG_ALT = resolve(FIXTURES, 'tsconfig.alt.json'); + +// Minimal logger stub — loadModule no longer logs, but the signature requires one. +const logger = { + warn: () => undefined, + info: () => undefined, + error: () => undefined, +} as unknown as logging.LoggerApi; + +const fixture = (file: string) => resolve(FIXTURES, file); + +describe('loadModule', () => { + it.each([ + ['config.ts', 'ts'], + ['config.mts', 'mts'], + ['config.cts', 'cts'], + ['config.js', 'js-cjs'], + ['config.mjs', 'mjs'], + ['config.cjs', 'cjs'], + ])('loads %s', async (file, expected) => { + const result = await loadModule<{ name: string }>(fixture(file), TSCONFIG, logger); + expect(result).toEqual({ name: expected }); + }); + + it('resolves JSON imports inside a TS config (regression: #816)', async () => { + const result = await loadModule<{ name: string }>( + fixture('config-json-import.ts'), + TSCONFIG, + logger + ); + expect(result).toEqual({ name: 'from-json' }); + }); + + it('loads an ESM config that uses top-level await', async () => { + const result = await loadModule<{ name: string }>(fixture('config-tla.mjs'), TSCONFIG, logger); + expect(result).toEqual({ name: 'tla' }); + }); + + it('resolves tsconfig path aliases from the passed tsConfig', async () => { + const result = await loadModule<{ name: string }>(fixture('config-alias.ts'), TSCONFIG, logger); + expect(result).toEqual({ name: 'aliased-base' }); + }); + + it('does NOT over-unwrap a double default export', async () => { + const result = await loadModule<{ default: { name: string } }>( + fixture('config-double-default.ts'), + TSCONFIG, + logger + ); + // The outer default is unwrapped once; the inner { default: ... } is preserved. + expect(result).toEqual({ default: { name: 'inner' } }); + }); + + it('uses each tsConfig independently (regression: sticky-tsconfig)', async () => { + const base = await loadModule<{ name: string }>(fixture('config-alias.ts'), TSCONFIG, logger); + const alt = await loadModule<{ name: string }>( + fixture('config-alias-alt.ts'), + TSCONFIG_ALT, + logger + ); + expect(base).toEqual({ name: 'aliased-base' }); + expect(alt).toEqual({ name: 'aliased-alt' }); + }); +}); diff --git a/packages/common/src/load-module.ts b/packages/common/src/load-module.ts index ea0c2a5c9e..5705543470 100644 --- a/packages/common/src/load-module.ts +++ b/packages/common/src/load-module.ts @@ -1,153 +1,124 @@ +/// +// The triple-slash reference above explicitly pulls in `@types/node` global typings +// (`require`, `process`, `__filename`, the `node:` import specifiers). This package's +// tsconfig does not set a `types` field, and `@types/node` is not auto-discovered for +// this program; the previous implementation only got node globals transitively via +// `typeof import('ts-node')`. Removing ts-node removed that side effect, so we declare +// the dependency on node types directly here. import * as path from 'node:path'; -import * as url from 'node:url'; +import { createJiti } from 'jiti'; +import { parseTsconfig } from 'get-tsconfig'; import type { logging } from '@angular-devkit/core'; -const _tsNodeRegister = (() => { - let lastTsConfig: string | undefined; - return (tsConfig: string, logger: logging.LoggerApi) => { - // Check if the function was previously called with the same tsconfig - if (lastTsConfig && lastTsConfig !== tsConfig) { - logger.warn(`Trying to register ts-node again with a different tsconfig - skipping the registration. - tsconfig 1: ${lastTsConfig} - tsconfig 2: ${tsConfig}`); - } +type Jiti = ReturnType; - if (lastTsConfig) { - return; - } +// Cache one jiti instance per tsconfig. Repeated loads with the same tsconfig +// reuse the transform cache; different tsconfigs get isolated instances, so there +// is no process-global "first tsconfig wins" stickiness (the old ts-node limitation). +const jitiByTsConfig = new Map(); - lastTsConfig = tsConfig; +/** + * Builds a jiti `alias` map from a tsconfig's `baseUrl` + `paths`, resolving + * `extends` so aliases declared in a base config are honored. + * + * Why not jiti's built-in `tsconfigPaths: ` option? Internally jiti hands the + * string to `get-tsconfig`'s `getTsconfig()`, which treats it as a *search location* + * and only ever loads a file literally named `tsconfig.json` — it ignores any other + * filename (e.g. `tsconfig.app.json`, which Angular build targets routinely use) and + * walks up to the nearest `tsconfig.json`. That silently resolves aliases against the + * wrong config and breaks per-target isolation. Parsing the exact file we were handed + * with `get-tsconfig`'s `parseTsconfig()` (which honors the precise path and resolves + * `extends`) and feeding jiti an explicit `alias` map keeps each jiti instance isolated. + * + * We use `get-tsconfig` rather than `require('typescript')` deliberately: `common` is a + * *published* package and does not declare `typescript` as a runtime dependency, so + * `require('typescript')` is unreliable under non-hoisted installs (pnpm / Yarn PnP) — + * a strict resolver would fail and aliases would silently break. `get-tsconfig` is a + * declared, zero-dependency dependency (the same parser jiti uses internally), so it + * always resolves. A missing/invalid tsconfig degrades gracefully to an empty map + * (jiti still loads the module — only `paths` aliases are unavailable). + */ +function tsConfigAliases(tsConfig: string): Record { + let compilerOptions: { baseUrl?: string; paths?: Record } | undefined; + try { + compilerOptions = parseTsconfig(tsConfig).compilerOptions; + } catch { + return {}; + } - loadTsNode().register({ - project: tsConfig, - compilerOptions: { - module: 'CommonJS', - // We deliberately do NOT override moduleResolution here. - // The user's tsconfig moduleResolution setting (node, bundler, node16, etc.) is preserved. - // TypeScript allows moduleResolution:bundler with module:CommonJS, so type checking - // works correctly for all moduleResolution values — including 'bundler', which supports - // subpath package exports (e.g. '@angular/core/primitives/di'). - // Overriding moduleResolution to 'node' (as was done previously) was the root cause of - // issue https://github.com/just-jeb/angular-builders/issues/2025: it prevented TypeScript - // from resolving subpath exports, causing TS2307 errors at build time. - resolveJsonModule: true, - // resolveJsonModule: true is required so that TypeScript webpack configs can import - // JSON files (e.g. `import pkg from './package.json'`). Without this, users on - // moduleResolution:'node' (the default for Angular projects before v17) get TS2732: - // "Cannot find module './foo.json'. Consider using '--resolveJsonModule'". - // This flag is safe to always enable: it has no downside and does not conflict - // with any other moduleResolution mode (node, node16, bundler, etc.). - // Fix for: https://github.com/just-jeb/angular-builders/issues/816 - types: [ - 'node', // NOTE: `node` is added so user configs can use Node.js globals (process, __dirname, etc.) - ], - }, - }); + const { baseUrl, paths } = compilerOptions ?? {}; + if (!paths) { + return {}; + } - const tsConfigPaths = loadTsConfigPaths(); - const result = tsConfigPaths.loadConfig(tsConfig); - // The `loadConfig` returns a `ConfigLoaderResult` which must be guarded with - // the `resultType` check. - if (result.resultType === 'success') { - const { absoluteBaseUrl: baseUrl, paths } = result; - if (baseUrl && paths) { - tsConfigPaths.register({ baseUrl, paths }); - } - } - }; -})(); + // `get-tsconfig` returns `baseUrl` (and the `paths` targets) relative to the *directory + // of the tsconfig file we passed* — even when they originate from an extended base + // config, it rewrites them to be relative to that directory. So resolve baseUrl against + // the tsconfig's dir, and each target against baseUrl. If baseUrl is absent, paths + // resolve directly against the tsconfig's dir. + const tsConfigDir = path.dirname(tsConfig); + const base = baseUrl ? path.resolve(tsConfigDir, baseUrl) : tsConfigDir; -/** - * check for TS node registration - * @param file: file name or file directory are allowed - */ -function tsNodeRegister(file: string = '', tsConfig: string, logger: logging.LoggerApi) { - if (file?.endsWith('.ts')) { - // Register TS compiler lazily - _tsNodeRegister(tsConfig, logger); + const aliases: Record = {}; + for (const [alias, targets] of Object.entries(paths)) { + const target = targets?.[0]; + if (!target) { + continue; + } + // Strip the trailing `/*` wildcard from both sides so jiti (prefix matching) + // maps `@x/*` -> the resolved target directory; non-wildcard aliases map 1:1. + const aliasKey = alias.replace(/\/\*$/, ''); + const targetPath = target.replace(/\/\*$/, ''); + aliases[aliasKey] = path.resolve(base, targetPath); } + + return aliases; } -/** - * This uses a dynamic import to load a module which may be ESM. - * CommonJS code can load ESM code via a dynamic import. Unfortunately, TypeScript - * will currently, unconditionally downlevel dynamic import into a require call. - * require calls cannot load ESM code and will result in a runtime error. To workaround - * this, a Function constructor is used to prevent TypeScript from changing the dynamic import. - * Once TypeScript provides support for keeping the dynamic import this workaround can - * be dropped. - * - * @param modulePath The path of the module to load. - * @returns A Promise that resolves to the dynamically imported module. - */ -function loadEsmModule(modulePath: string | URL): Promise { - return new Function('modulePath', `return import(modulePath);`)(modulePath) as Promise; +function getJiti(tsConfig: string): Jiti { + let jiti = jitiByTsConfig.get(tsConfig); + if (!jiti) { + jiti = createJiti(__filename, { + // Resolve TypeScript path aliases (baseUrl/paths) from the build target's + // tsconfig. Replaces the previous explicit `tsconfig-paths` registration. + // We parse the tsconfig ourselves (see `tsConfigAliases`) rather than using + // jiti's `tsconfigPaths` option, which mishandles non-`tsconfig.json` filenames. + alias: tsConfigAliases(tsConfig), + // Merge module.exports + default export into a single value (Proxy-based), + // replacing the previous `require(p).default || require(p)` unwrapping. + interopDefault: true, + // Persist the transform cache to disk between runs for faster reloads. + fsCache: true, + }); + jitiByTsConfig.set(tsConfig, jiti); + } + + return jiti; } /** - * Loads CJS and ESM modules based on extension + * Loads a user-provided module (webpack/esbuild config, plugin, or index-html + * transformer) regardless of format: `.ts`, `.mts`, `.cts`, `.js`, `.mjs`, `.cjs`. + * + * All CJS/ESM/TS interop is delegated to jiti. TypeScript is transpiled + * transpile-only — there is NO build-time type-checking (run `tsc --noEmit` + * separately if you want it; see the package README). This replaces the previous + * ts-node + tsconfig-paths + hand-rolled dynamic-import implementation. + * + * @param modulePath Absolute path to the module to load. + * @param tsConfig Absolute path to the tsconfig used for path-alias resolution. + * @param _logger Angular logger (retained for API compatibility; unused). */ export async function loadModule( modulePath: string, tsConfig: string, - logger: logging.LoggerApi + _logger: logging.LoggerApi ): Promise { - tsNodeRegister(modulePath, tsConfig, logger); - - switch (path.extname(modulePath)) { - case '.mjs': - // Load the ESM configuration file using the TypeScript dynamic import workaround. - // Once TypeScript provides support for keeping the dynamic import this workaround can be - // changed to a direct dynamic import. - return (await loadEsmModule<{ default: T }>(url.pathToFileURL(modulePath))).default; - case '.cjs': - return require(modulePath); - case '.ts': - try { - // If it's a TS file then there are 2 cases for exporting an object. - // The first one is `export blah`, transpiled into `module.exports = { blah} `. - // The second is `export default blah`, transpiled into `{ default: { ... } }`. - return require(modulePath).default || require(modulePath); - } catch (e: any) { - if (e.code === 'ERR_REQUIRE_ESM') { - // Load the ESM configuration file using the TypeScript dynamic import workaround. - // Once TypeScript provides support for keeping the dynamic import this workaround can be - // changed to a direct dynamic import. - return (await loadEsmModule<{ default: T }>(url.pathToFileURL(modulePath))).default; - } - throw e; - } - //.js - default: - // The file could be either CommonJS or ESM. - // CommonJS is tried first then ESM if loading fails. - try { - return require(modulePath).default || require(modulePath); - } catch (e: any) { - if (e.code === 'ERR_REQUIRE_ESM') { - // Load the ESM configuration file using the TypeScript dynamic import workaround. - // Once TypeScript provides support for keeping the dynamic import this workaround can be - // changed to a direct dynamic import. - return (await loadEsmModule<{ default: T }>(url.pathToFileURL(modulePath))).default; - } - - throw e; - } - } -} - -/** - * Loads `ts-node` lazily. Moved to a separate function to declare - * a return type, more readable than an inline variant. - */ -function loadTsNode(): typeof import('ts-node') { - return require('ts-node'); -} + const jiti = getJiti(tsConfig); + const mod = await jiti.import(modulePath); -/** - * Loads `tsconfig-paths` lazily. Moved to a separate function to declare - * a return type, more readable than an inline variant. - */ -function loadTsConfigPaths(): typeof import('tsconfig-paths') { - return require('tsconfig-paths'); + // With interopDefault, `mod` already merges named + default exports. The explicit + // `.default` access preserves parity with the previous unwrap for modules that + // only set a default export, without over-unwrapping a nested `{ default: ... }`. + return ((mod as { default?: T })?.default ?? mod) as T; } diff --git a/packages/common/src/schematics/detection.spec.ts b/packages/common/src/schematics/detection.spec.ts new file mode 100644 index 0000000000..6d8293e271 --- /dev/null +++ b/packages/common/src/schematics/detection.spec.ts @@ -0,0 +1,91 @@ +import * as path from 'path'; +import { readWorkspace, updateWorkspace } from '@schematics/angular/utility'; +import { SchematicTestHarness } from './testing'; +import { getProjectsToTarget, detectTestBuilder, isZoneless } from './detection'; + +async function load(tree: import('@angular-devkit/schematics/testing').UnitTestTree) { + return readWorkspace(tree); +} + +describe('getProjectsToTarget', () => { + it('single project → that project', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + expect(getProjectsToTarget(await load(tree))).toEqual(['app']); + }); + + it('multi project + explicit option → just that one', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ + projects: [{ name: 'a' }, { name: 'b' }], + }); + expect(getProjectsToTarget(await load(tree), 'b')).toEqual(['b']); + }); + + it('multi project + no option + no default → all', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ + projects: [{ name: 'a' }, { name: 'b' }], + }); + expect(getProjectsToTarget(await load(tree)).sort()).toEqual(['a', 'b']); + }); +}); + +describe('detectTestBuilder', () => { + // Apply a workspace mutation rule to a tree and return the updated tree. + async function applyWorkspace( + tree: import('@angular-devkit/schematics/testing').UnitTestTree, + builder: string, + options: Record = {}, + ) { + const rule = updateWorkspace((workspace) => { + workspace.projects.get('app')!.targets.set('test', { + builder, + options: options as never, + }); + }); + const { SchematicTestRunner } = await import('@angular-devkit/schematics/testing'); + const NG_COLLECTION = path.join( + path.dirname(require.resolve('@schematics/angular/package.json')), + 'collection.json', + ); + const runner = new SchematicTestRunner('t', NG_COLLECTION); + return runner.callRule(rule, tree).toPromise() as Promise; + } + + it('returns "none" when no test target', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + // application schematic may add no test target under zoneless/standalone defaults + const ws = await load(tree); + if (!ws.projects.get('app')!.targets.has('test')) { + expect(detectTestBuilder(ws, 'app')).toBe('none'); + } + }); + + it('detects a dedicated :karma builder (webpack projects)', async () => { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + tree = await applyWorkspace(tree, '@angular-devkit/build-angular:karma'); + expect(detectTestBuilder(await load(tree), 'app')).toBe('karma'); + }); + + it('detects Karma on a v22 :unit-test builder via runner option', async () => { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + tree = await applyWorkspace(tree, '@angular/build:unit-test', { runner: 'karma' }); + expect(detectTestBuilder(await load(tree), 'app')).toBe('karma'); + }); + + it('detects Vitest on a :unit-test builder (runner "vitest" or unset)', async () => { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + tree = await applyWorkspace(tree, '@angular/build:unit-test', { runner: 'vitest' }); + expect(detectTestBuilder(await load(tree), 'app')).toBe('vitest'); + + let tree2 = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + tree2 = await applyWorkspace(tree2, '@angular/build:unit-test'); + expect(detectTestBuilder(await load(tree2), 'app')).toBe('vitest'); + }); +}); + +describe('isZoneless', () => { + it('true when polyfills lack zone.js', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + // modern application schematic is zoneless by default → no zone.js polyfill + expect(isZoneless(tree, await load(tree), 'app')).toBe(true); + }); +}); diff --git a/packages/common/src/schematics/detection.ts b/packages/common/src/schematics/detection.ts new file mode 100644 index 0000000000..39a73fd94f --- /dev/null +++ b/packages/common/src/schematics/detection.ts @@ -0,0 +1,72 @@ +import { Tree } from '@angular-devkit/schematics'; +import { workspaces } from '@angular-devkit/core'; + +export type TestBuilderKind = 'karma' | 'jest' | 'vitest' | 'other' | 'none'; + +export function getProjectsToTarget( + workspace: workspaces.WorkspaceDefinition, + optionProject?: string, +): string[] { + const names = [...workspace.projects.keys()]; + if (optionProject) { + if (!workspace.projects.has(optionProject)) { + throw new Error(`Project "${optionProject}" does not exist in the workspace.`); + } + return [optionProject]; + } + if (names.length <= 1) return names; + const defaultProject = workspace.extensions['defaultProject']; + if (typeof defaultProject === 'string' && workspace.projects.has(defaultProject)) { + return [defaultProject]; + } + return names; +} + +export function detectTestBuilder( + workspace: workspaces.WorkspaceDefinition, + projectName: string, +): TestBuilderKind { + const project = workspace.projects.get(projectName); + const test = project?.targets.get('test'); + const builder = test?.builder; + if (!builder) return 'none'; + // Webpack-based projects keep a dedicated Karma builder (e.g. @angular-devkit/build-angular:karma). + if (builder.endsWith(':karma')) return 'karma'; + if (builder === '@angular-builders/jest:run') return 'jest'; + // Angular 22 unified Karma and Vitest under the `:unit-test` builder, distinguished only by the + // `runner` option. `runner: "karma"` is Karma; "vitest" (or unset, the default) is Vitest. + if (builder.endsWith(':unit-test')) { + return test?.options?.['runner'] === 'karma' ? 'karma' : 'vitest'; + } + return 'other'; +} + +export function isZoneless( + tree: Tree, + workspace: workspaces.WorkspaceDefinition, + projectName: string, +): boolean { + const project = workspace.projects.get(projectName); + const buildOptions = project?.targets.get('build')?.options ?? {}; + const polyfills = buildOptions['polyfills']; + const polyfillList = Array.isArray(polyfills) + ? (polyfills as string[]) + : typeof polyfills === 'string' + ? [polyfills] + : []; + const hasZone = polyfillList.some((p) => p === 'zone.js' || p.includes('zone.js')); + if (hasZone) return false; + + // Fallback: look for provideZonelessChangeDetection in any bootstrap source. + const root = project?.root ?? ''; + const mainCandidates = ['src/main.ts', 'src/app/app.config.ts'].map((p) => + root ? `${root}/${p}` : p, + ); + for (const candidate of mainCandidates) { + if (tree.exists(candidate)) { + const content = tree.readText(candidate); + if (content.includes('provideZonelessChangeDetection')) return true; + } + } + return !hasZone; // no zone.js polyfill ⇒ treat as zoneless +} diff --git a/packages/common/src/schematics/index.ts b/packages/common/src/schematics/index.ts new file mode 100644 index 0000000000..c0a5f87734 --- /dev/null +++ b/packages/common/src/schematics/index.ts @@ -0,0 +1,6 @@ +export * from './rules'; +export * from './detection'; +export * from './version'; +export * from './migrate-jiti-loader'; +// testing.ts is exported via the ./schematics/testing subpath, not the barrel, +// so production schematics never pull SchematicTestRunner into their bundle. diff --git a/packages/common/src/schematics/migrate-jiti-loader.spec.ts b/packages/common/src/schematics/migrate-jiti-loader.spec.ts new file mode 100644 index 0000000000..8c5043ca13 --- /dev/null +++ b/packages/common/src/schematics/migrate-jiti-loader.spec.ts @@ -0,0 +1,92 @@ +import * as path from 'path'; +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; +import { SchematicTestHarness } from './testing'; +import { migrateToJitiLoader } from './migrate-jiti-loader'; + +const NG = path.join( + path.dirname(require.resolve('@schematics/angular/package.json')), + 'collection.json' +); +const runner = () => new SchematicTestRunner('t', NG); + +const PKG = '@angular-builders/custom-webpack'; + +async function seed( + mutate: (pkg: Record) => void, + tsconfig?: Record +): Promise { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const pkg = JSON.parse(tree.readText('/package.json')); + pkg.scripts = pkg.scripts ?? {}; + pkg.devDependencies = pkg.devDependencies ?? {}; + mutate(pkg); + tree.overwrite('/package.json', JSON.stringify(pkg, null, 2)); + if (tsconfig) { + tree.overwrite('/tsconfig.json', JSON.stringify(tsconfig, null, 2)); + } + return tree; +} + +async function migrate(tree: UnitTestTree): Promise { + return (await runner().callRule(migrateToJitiLoader(PKG), tree).toPromise()) as UnitTestTree; +} + +describe('migrateToJitiLoader', () => { + it('strips the ts-node/esm NODE_OPTIONS workaround from npm scripts', async () => { + const tree = await seed(pkg => { + pkg.scripts['build-ts'] = + "TS_NODE_PROJECT=tsconfig.app.json NODE_OPTIONS='--loader ts-node/esm' ng build"; + pkg.scripts['build'] = 'ng build'; + }); + const out = await migrate(tree); + const pkg = JSON.parse(out.readText('/package.json')); + expect(pkg.scripts['build-ts']).toBe('ng build'); + expect(pkg.scripts['build']).toBe('ng build'); + }); + + it('removes ts-node and tsconfig-paths from devDependencies', async () => { + const tree = await seed(pkg => { + pkg.devDependencies['ts-node'] = '10.9.2'; + pkg.devDependencies['tsconfig-paths'] = '4.2.0'; + pkg.devDependencies['typescript'] = '5.0.0'; + }); + const out = await migrate(tree); + const pkg = JSON.parse(out.readText('/package.json')); + expect(pkg.devDependencies['ts-node']).toBeUndefined(); + expect(pkg.devDependencies['tsconfig-paths']).toBeUndefined(); + expect(pkg.devDependencies['typescript']).toBe('5.0.0'); + }); + + it('lifts a path-only `ts-node` tsconfig section into compilerOptions and removes the section', async () => { + const tree = await seed(() => undefined, { + compilerOptions: { strict: true, paths: { '@app/*': ['./src/app/*'] } }, + 'ts-node': { compilerOptions: { paths: { '@cfg/*': ['./cfg/*'] } } }, + }); + const out = await migrate(tree); + const cfg = JSON.parse(out.readText('/tsconfig.json')); + expect(cfg.compilerOptions.paths['@cfg/*']).toEqual(['./cfg/*']); + expect(cfg.compilerOptions.paths['@app/*']).toEqual(['./src/app/*']); + expect(cfg['ts-node']).toBeUndefined(); + }); + + it('keeps a `ts-node` section that has non-path overrides (cannot be applied safely)', async () => { + const tree = await seed(() => undefined, { + compilerOptions: { strict: true }, + 'ts-node': { compilerOptions: { target: 'ES2022' } }, + }); + const out = await migrate(tree); + const cfg = JSON.parse(out.readText('/tsconfig.json')); + expect(cfg['ts-node']).toEqual({ compilerOptions: { target: 'ES2022' } }); + }); + + it('does not add a path alias that already exists in compilerOptions', async () => { + const tree = await seed(() => undefined, { + compilerOptions: { paths: { '@cfg/*': ['./real/*'] } }, + 'ts-node': { compilerOptions: { paths: { '@cfg/*': ['./override/*'] } } }, + }); + const out = await migrate(tree); + const cfg = JSON.parse(out.readText('/tsconfig.json')); + // The existing mapping wins; the ts-node override does not clobber it. + expect(cfg.compilerOptions.paths['@cfg/*']).toEqual(['./real/*']); + }); +}); diff --git a/packages/common/src/schematics/migrate-jiti-loader.ts b/packages/common/src/schematics/migrate-jiti-loader.ts new file mode 100644 index 0000000000..76c114f745 --- /dev/null +++ b/packages/common/src/schematics/migrate-jiti-loader.ts @@ -0,0 +1,161 @@ +import { chain, Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; +import { JsonValue, workspaces } from '@angular-devkit/core'; +import { readWorkspace } from '@schematics/angular/utility'; +import { JSONFile } from '@schematics/angular/utility/json-file'; +import { removeDevDependencies } from './rules'; + +/** + * Shared `ng update` migration for the move from ts-node to jiti as the loader for + * user-provided TypeScript modules (configs, plugins, transformers). + * + * It performs the changes that are safe to automate and advises on the rest: + * - strips the `NODE_OPTIONS='--loader ts-node/esm'` / `TS_NODE_PROJECT=…` workaround + * from npm scripts (these now fail because ts-node is no longer installed, and are + * unnecessary — jiti loads `.ts` configs in ESM projects directly); + * - removes `ts-node` / `tsconfig-paths` from devDependencies; + * - lifts `paths`/`baseUrl` from a now-ignored `ts-node` tsconfig section into the + * standard `compilerOptions` (jiti reads them from there), skipping colliding keys; + * - advises (without changing files) on anything that cannot be migrated safely: + * non-path overrides in a `ts-node` section, and the loss of build-time type-checking. + * + * @param packageName The builder package name, used only as a log prefix. + */ +export function migrateToJitiLoader(packageName: string): Rule { + return async (tree: Tree, context: SchematicContext) => { + const workspace = await readWorkspace(tree); + const tsconfigPaths = collectTsconfigPaths(workspace); + + return chain([ + stripTsNodeEsmFromScripts(packageName), + removeDevDependencies(['ts-node', 'tsconfig-paths']), + migrateTsNodeTsconfigSections(packageName, tsconfigPaths), + adviseTypeChecking(packageName), + ]); + }; +} + +function collectTsconfigPaths(workspace: workspaces.WorkspaceDefinition): string[] { + const paths = new Set(['/tsconfig.json', '/tsconfig.base.json']); + for (const project of workspace.projects.values()) { + for (const target of project.targets.values()) { + const tsConfig = (target.options as Record | undefined)?.['tsConfig']; + if (typeof tsConfig === 'string') { + paths.add('/' + tsConfig.replace(/^\/+/, '')); + } + } + } + return [...paths]; +} + +function stripTsNodeEsmFromScripts(packageName: string): Rule { + return (tree: Tree, context: SchematicContext) => { + if (!tree.exists('/package.json')) return tree; + const json = new JSONFile(tree, '/package.json'); + const scripts = json.get(['scripts']) as Record | undefined; + if (!scripts) return tree; + + let changed = false; + for (const [name, value] of Object.entries(scripts)) { + if (typeof value !== 'string') continue; + const next = value + .replace(/\bTS_NODE_PROJECT=\S+\s+/g, '') + .replace( + /\bNODE_OPTIONS=(?:'--loader ts-node\/esm'|"--loader ts-node\/esm"|--loader[= ]ts-node\/esm)\s+/g, + '' + ) + // A `cross-env` that is now left immediately before the `ng` command is redundant. + .replace(/^cross-env\s+(?=ng\b)/, '') + .trim(); + if (next !== value) { + json.modify(['scripts', name], next); + changed = true; + } + } + + if (changed) { + context.logger.info( + `[${packageName}] Removed the \`ts-node/esm\` NODE_OPTIONS loader workaround from npm ` + + `scripts — TypeScript configs now load via jiti with plain \`ng\` commands.` + ); + } + return tree; + }; +} + +function migrateTsNodeTsconfigSections(packageName: string, tsconfigPaths: string[]): Rule { + return (tree: Tree, context: SchematicContext) => { + for (const path of tsconfigPaths) { + if (!tree.exists(path)) continue; + const json = new JSONFile(tree, path); + const section = json.get(['ts-node']) as + | { compilerOptions?: Record } + | undefined; + const tsNodeCompilerOptions = section?.compilerOptions; + if (!tsNodeCompilerOptions) continue; + + const { paths, baseUrl, ...rest } = tsNodeCompilerOptions; + + // jiti reads `paths`/`baseUrl` from the standard compilerOptions, so lift them there. + if (paths && typeof paths === 'object') { + const existing = + (json.get(['compilerOptions', 'paths']) as Record) ?? {}; + const merged = { ...existing }; + let addedAlias = false; + for (const [alias, target] of Object.entries(paths as Record)) { + if (!(alias in existing)) { + merged[alias] = target; + addedAlias = true; + } + } + if (addedAlias) { + ensureCompilerOptions(json); + json.modify(['compilerOptions', 'paths'], merged); + } + } + if (typeof baseUrl === 'string' && json.get(['compilerOptions', 'baseUrl']) === undefined) { + ensureCompilerOptions(json); + json.modify(['compilerOptions', 'baseUrl'], baseUrl); + } + + const leftover = Object.keys(rest); + if (leftover.length > 0) { + // Non-path overrides (target, module, lib, …) cannot be lifted into the main + // compilerOptions without also changing the app compile, so leave the section + // in place and tell the user how to relocate it. + context.logger.warn( + `[${packageName}] ${path}: the \`ts-node\` section is no longer read by the builder ` + + `(loading uses jiti). Its path options were moved to \`compilerOptions\`, but these ` + + `overrides were left untouched and now have no effect: ${leftover.join(', ')}. ` + + `If your config files need them, move them into a dedicated tsconfig used only for ` + + `\`tsc --noEmit\` (see the package README).` + ); + } else { + // Fully migrated — drop the now-empty/path-only section. + json.remove(['ts-node']); + context.logger.info( + `[${packageName}] ${path}: migrated the \`ts-node\` section's path options into ` + + `\`compilerOptions\` and removed the obsolete section.` + ); + } + } + return tree; + }; +} + +function ensureCompilerOptions(json: JSONFile): void { + if (json.get(['compilerOptions']) === undefined) { + json.modify(['compilerOptions'], {}); + } +} + +function adviseTypeChecking(packageName: string): Rule { + return (tree: Tree, context: SchematicContext) => { + context.logger.warn( + `[${packageName}] TypeScript configs/plugins are now transpiled by jiti and are NO LONGER ` + + `type-checked at build time (your editor still type-checks them). To enforce type-checking ` + + `in CI, add a dedicated tsconfig that \`include\`s your config files and run ` + + `\`tsc --noEmit -p tsconfig.build-config.json\`. See the package README.` + ); + return tree; + }; +} diff --git a/packages/common/src/schematics/rules.spec.ts b/packages/common/src/schematics/rules.spec.ts new file mode 100644 index 0000000000..59e0fdacd5 --- /dev/null +++ b/packages/common/src/schematics/rules.spec.ts @@ -0,0 +1,101 @@ +import * as path from 'path'; +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; +import { readWorkspace } from '@schematics/angular/utility'; +import { SchematicTestHarness } from './testing'; +import { + setBuilderForTarget, + addBuilderDevDependency, + removeDevDependencies, + removeFilesIfPresent, + editJsonFile, +} from './rules'; + +const NG = path.join(path.dirname(require.resolve('@schematics/angular/package.json')), 'collection.json'); +const runner = () => new SchematicTestRunner('t', NG); + +describe('setBuilderForTarget', () => { + it('rewrites the builder and merges options', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const out = (await runner() + .callRule(setBuilderForTarget('app', 'build', '@angular-builders/custom-esbuild:application', { foo: 1 }), tree) + .toPromise()) as UnitTestTree; + const ws = await readWorkspace(out); + const target = ws.projects.get('app')!.targets.get('build')!; + expect(target.builder).toBe('@angular-builders/custom-esbuild:application'); + expect((target.options as Record)['foo']).toBe(1); + }); + + it('replaceOptions discards the previous builder options', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + // Seed a :unit-test-shaped test target whose options must NOT carry over. + const seeded = (await runner() + .callRule(setBuilderForTarget('app', 'test', '@angular/build:unit-test', { runner: 'karma', buildTarget: 'app:build' }), tree) + .toPromise()) as UnitTestTree; + const out = (await runner() + .callRule( + setBuilderForTarget('app', 'test', '@angular-builders/jest:run', { zoneless: true }, { replaceOptions: true }), + seeded, + ) + .toPromise()) as UnitTestTree; + const ws = await readWorkspace(out); + const target = ws.projects.get('app')!.targets.get('test')!; + expect(target.builder).toBe('@angular-builders/jest:run'); + const options = target.options as Record; + expect(options['runner']).toBeUndefined(); + expect(options['buildTarget']).toBeUndefined(); + expect(options['zoneless']).toBe(true); + }); +}); + +describe('addBuilderDevDependency', () => { + it('adds the package to devDependencies', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const out = (await runner() + .callRule(addBuilderDevDependency('@angular-builders/jest', '~22.0.0', { install: false }), tree) + .toPromise()) as UnitTestTree; + const pkg = JSON.parse(out.readText('/package.json')); + expect(pkg.devDependencies['@angular-builders/jest']).toBe('~22.0.0'); + }); +}); + +describe('removeDevDependencies', () => { + it('removes only present deps and is safe on absent ones', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + tree.overwrite( + '/package.json', + JSON.stringify({ devDependencies: { karma: '^6.0.0', jasmine: '^5.0.0' } }, null, 2), + ); + const out = (await runner() + .callRule(removeDevDependencies(['karma', 'not-there']), tree) + .toPromise()) as UnitTestTree; + const pkg = JSON.parse(out.readText('/package.json')); + expect(pkg.devDependencies.karma).toBeUndefined(); + expect(pkg.devDependencies.jasmine).toBe('^5.0.0'); + }); +}); + +describe('removeFilesIfPresent', () => { + it('deletes present files, ignores absent', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + tree.create('/karma.conf.js', '// karma'); + const out = (await runner() + .callRule(removeFilesIfPresent(['/karma.conf.js', '/nope.js']), tree) + .toPromise()) as UnitTestTree; + expect(out.exists('/karma.conf.js')).toBe(false); + }); +}); + +describe('editJsonFile', () => { + it('mutates JSON via JSONFile', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + tree.create('/tsconfig.spec.json', JSON.stringify({ compilerOptions: { types: ['jasmine'] } }, null, 2)); + const out = (await runner() + .callRule( + editJsonFile('/tsconfig.spec.json', (json) => json.modify(['compilerOptions', 'types'], ['jest'])), + tree, + ) + .toPromise()) as UnitTestTree; + const cfg = JSON.parse(out.readText('/tsconfig.spec.json')); + expect(cfg.compilerOptions.types).toEqual(['jest']); + }); +}); diff --git a/packages/common/src/schematics/rules.ts b/packages/common/src/schematics/rules.ts new file mode 100644 index 0000000000..0d1bfbc33c --- /dev/null +++ b/packages/common/src/schematics/rules.ts @@ -0,0 +1,73 @@ +import { JsonValue } from '@angular-devkit/core'; +import { Rule, Tree } from '@angular-devkit/schematics'; +import { updateWorkspace, addDependency, DependencyType, InstallBehavior } from '@schematics/angular/utility'; +import { JSONFile } from '@schematics/angular/utility/json-file'; + +export function setBuilderForTarget( + projectName: string, + targetName: string, + builderName: string, + options?: Record, + opts: { replaceOptions?: boolean } = {}, +): Rule { + return updateWorkspace((workspace) => { + const project = workspace.projects.get(projectName); + if (!project) throw new Error(`Project "${projectName}" not found.`); + const target = project.targets.get(targetName); + if (target) { + target.builder = builderName; + // By default merge onto the existing options. `replaceOptions` discards them — used when + // switching to a builder whose option shape is incompatible with the previous one (e.g. + // replacing a :unit-test target, whose `runner`/`buildTarget` must not leak to the new builder). + if (opts.replaceOptions) { + target.options = (options ?? {}) as Record; + } else if (options) { + target.options = { ...(target.options ?? {}), ...(options as Record) }; + } + } else { + project.targets.add({ name: targetName, builder: builderName, options: (options ?? {}) as Record }); + } + }); +} + +export function addBuilderDevDependency( + name: string, + version: string, + opts: { install?: boolean } = {}, +): Rule { + return addDependency(name, version, { + type: DependencyType.Dev, + install: opts.install === false ? InstallBehavior.None : InstallBehavior.Auto, + }); +} + +export function removeDevDependencies(names: string[]): Rule { + return (tree: Tree) => { + if (!tree.exists('/package.json')) return tree; + const json = new JSONFile(tree, '/package.json'); + for (const name of names) { + if (json.get(['devDependencies', name]) !== undefined) { + json.remove(['devDependencies', name]); + } + } + return tree; + }; +} + +export function removeFilesIfPresent(paths: string[]): Rule { + return (tree: Tree) => { + for (const p of paths) { + if (tree.exists(p)) tree.delete(p); + } + return tree; + }; +} + +export function editJsonFile(path: string, mutator: (json: JSONFile) => void): Rule { + return (tree: Tree) => { + if (!tree.exists(path)) return tree; + const json = new JSONFile(tree, path); + mutator(json); + return tree; + }; +} diff --git a/packages/common/src/schematics/testing.spec.ts b/packages/common/src/schematics/testing.spec.ts new file mode 100644 index 0000000000..549d6e76af --- /dev/null +++ b/packages/common/src/schematics/testing.spec.ts @@ -0,0 +1,24 @@ +import { readWorkspace } from '@schematics/angular/utility'; +import { SchematicTestHarness } from './testing'; + +describe('SchematicTestHarness', () => { + it('builds a single-project workspace with angular.json', async () => { + const harness = new SchematicTestHarness(); + const tree = await harness.createWorkspace({ projects: [{ name: 'app' }] }); + + expect(tree.exists('/angular.json')).toBe(true); + const workspace = await readWorkspace(tree); + expect([...workspace.projects.keys()]).toEqual(['app']); + // application schematic wires a build target by default + expect(workspace.projects.get('app')!.targets.has('build')).toBe(true); + }); + + it('builds a multi-project workspace', async () => { + const harness = new SchematicTestHarness(); + const tree = await harness.createWorkspace({ + projects: [{ name: 'app1' }, { name: 'app2' }], + }); + const workspace = await readWorkspace(tree); + expect([...workspace.projects.keys()].sort()).toEqual(['app1', 'app2']); + }); +}); diff --git a/packages/common/src/schematics/testing.ts b/packages/common/src/schematics/testing.ts new file mode 100644 index 0000000000..9d90cb831d --- /dev/null +++ b/packages/common/src/schematics/testing.ts @@ -0,0 +1,55 @@ +import * as path from 'path'; +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; + +// @schematics/angular's exports map only exposes `.js` files; collection.json +// is not listed so require.resolve('@schematics/angular/collection.json') throws +// in Node 22+ which enforces the exports map. Resolve via package.json instead. +const NG_COLLECTION = path.join( + path.dirname(require.resolve('@schematics/angular/package.json')), + 'collection.json', +); + +export interface WorkspaceProjectSpec { + name: string; + root?: string; +} + +export interface CreateWorkspaceOptions { + projects?: WorkspaceProjectSpec[]; + defaultProject?: string; +} + +export class SchematicTestHarness { + readonly runner: SchematicTestRunner; + + constructor(runner?: SchematicTestRunner) { + this.runner = runner ?? new SchematicTestRunner('schematics', NG_COLLECTION); + } + + async createWorkspace(opts: CreateWorkspaceOptions = {}): Promise { + const projects = opts.projects ?? [{ name: 'app' }]; + + let tree = await this.runner.runSchematic('workspace', { + name: 'workspace', + version: '0.0.0', + newProjectRoot: 'projects', + }); + + for (const project of projects) { + tree = await this.runner.runSchematic( + 'application', + { + name: project.name, + // keep fixtures small + deterministic + routing: false, + style: 'css', + skipTests: false, + standalone: true, + }, + tree, + ); + } + + return tree; + } +} diff --git a/packages/common/src/schematics/version.spec.ts b/packages/common/src/schematics/version.spec.ts new file mode 100644 index 0000000000..fb99751a53 --- /dev/null +++ b/packages/common/src/schematics/version.spec.ts @@ -0,0 +1,23 @@ +import { parseVersion, isAtLeast } from './version'; + +describe('parseVersion', () => { + it('parses a plain semver', () => { + expect(parseVersion('21.2.13')).toEqual({ major: 21, minor: 2, patch: 13 }); + }); + it('parses a prerelease, ignoring the tag', () => { + expect(parseVersion('22.0.0-rc.2')).toEqual({ major: 22, minor: 0, patch: 0 }); + }); + it('strips a leading range operator', () => { + expect(parseVersion('^20.1.0')).toEqual({ major: 20, minor: 1, patch: 0 }); + }); +}); + +describe('isAtLeast', () => { + it('is true at and above the major', () => { + expect(isAtLeast('22.0.0-rc.2', 22)).toBe(true); + expect(isAtLeast('23.1.0', 22)).toBe(true); + }); + it('is false below the major', () => { + expect(isAtLeast('21.2.13', 22)).toBe(false); + }); +}); diff --git a/packages/common/src/schematics/version.ts b/packages/common/src/schematics/version.ts new file mode 100644 index 0000000000..d697e4b5b3 --- /dev/null +++ b/packages/common/src/schematics/version.ts @@ -0,0 +1,16 @@ +export interface SemverParts { + major: number; + minor: number; + patch: number; +} + +export function parseVersion(version: string): SemverParts { + const cleaned = version.trim().replace(/^[\^~>=v\s]+/, ''); + const [core] = cleaned.split('-'); + const [major = 0, minor = 0, patch = 0] = core.split('.').map((n) => parseInt(n, 10) || 0); + return { major, minor, patch }; +} + +export function isAtLeast(version: string, major: number): boolean { + return parseVersion(version).major >= major; +} diff --git a/packages/common/tsconfig.json b/packages/common/tsconfig.json index b79315f707..7133ae39ae 100644 --- a/packages/common/tsconfig.json +++ b/packages/common/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "dist" + "outDir": "dist", + "rootDir": "src" }, "files": [ "src/index.ts" diff --git a/packages/common/tsconfig.schematics.json b/packages/common/tsconfig.schematics.json new file mode 100644 index 0000000000..e4f56b977a --- /dev/null +++ b/packages/common/tsconfig.schematics.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.schematics.json", + "compilerOptions": { + "rootDir": "src/schematics", + "outDir": "dist/schematics" + }, + "include": ["src/schematics/**/*.ts"], + "exclude": ["node_modules", "**/*.spec.ts", "**/files/**"] +} diff --git a/packages/custom-esbuild/.gitignore b/packages/custom-esbuild/.gitignore index 28ffec918d..e176d0bd14 100644 --- a/packages/custom-esbuild/.gitignore +++ b/packages/custom-esbuild/.gitignore @@ -12,6 +12,7 @@ package dist **/schema.json +!src/schematics/**/schema.json *.js !karma.conf.js *.js.map diff --git a/packages/custom-esbuild/README.md b/packages/custom-esbuild/README.md index 931877908c..a4a870263a 100644 --- a/packages/custom-esbuild/README.md +++ b/packages/custom-esbuild/README.md @@ -23,12 +23,12 @@ Allow customizing ESBuild configuration > ⚠️ **Version alignment:** The major version of `@angular-builders/custom-esbuild` must match the major version of `@angular/core` in your project. For example, Angular 19 requires `@angular-builders/custom-esbuild`@19.x, Angular 20 requires `@angular-builders/custom-esbuild`@20.x, etc. Using a mismatched version is the most common source of issues. - ## Previous versions
Click to expand +- [Version 21](https://github.com/just-jeb/angular-builders/blob/21.x.x/packages/custom-esbuild/README.md) - [Version 20](https://github.com/just-jeb/angular-builders/blob/20.x.x/packages/custom-esbuild/README.md) - [Version 19](https://github.com/just-jeb/angular-builders/blob/19.x.x/packages/custom-esbuild/README.md) - [Version 18](https://github.com/just-jeb/angular-builders/blob/18.x.x/packages/custom-esbuild/README.md) @@ -38,7 +38,7 @@ Allow customizing ESBuild configuration ## Prerequisites: -- [Angular CLI 21](https://www.npmjs.com/package/@angular/cli) +- [Angular CLI 22](https://www.npmjs.com/package/@angular/cli) # Usage @@ -334,5 +334,22 @@ Custom ESBuild builder fully supports ESM. - If your app has `"type": "module"` both `plugin.js` and `index-html-transformer.js` will be treated as ES modules, unless you change their file extension to `.cjs`. In that case they'll be treated as CommonJS Modules. [Example](../../examples/custom-esbuild/sanity-esbuild-app-esm). - For `"type": "commonjs"` (or unspecified type) both `plugin.js` and `index-html-transformer.js` will be treated as CommonJS modules unless you change their file extension to `.mjs`. In that case they'll be treated as ES Modules. [Example](../../examples/custom-esbuild/sanity-esbuild-app). -- If you want to use TS config in ESM app, you must set the loader to `ts-node/esm` when running `ng build`. Also, in that case `tsconfig.json` for `ts-node` no longer defaults to `tsConfig` from the `application` target - you have to specify it manually via environment variable. [Example](../../examples/custom-esbuild/sanity-esbuild-app-esm/package.json#L9). - _Note that tsconfig paths are not supported in TS configs within ESM apps. That is because [tsconfig-paths](https://github.com/dividab/tsconfig-paths) do not support ESM._ +- **TypeScript plugins and transformers work in both CommonJS and ESM projects with no extra setup** — just point the builder at your `.ts` file. (Earlier versions required forcing a `ts-node/esm` loader through `NODE_OPTIONS`; that is no longer necessary.) TypeScript path aliases are supported in both module formats. + +### Type-checking TypeScript plugins and transformers + +`.ts` plugins and `indexHtmlTransformer` files are loaded with [jiti](https://github.com/unjs/jiti) and **transpiled, not type-checked**, at build time. Your editor still type-checks them as you write. To enforce type-checking in CI, add a dedicated tsconfig that includes them and run `tsc`: + +`tsconfig.build-config.json`: + +```jsonc +{ + "extends": "./tsconfig.json", + "compilerOptions": { "noEmit": true }, + "include": ["plugins/**/*.ts", "index-html-transformer.ts"], +} +``` + +```bash +tsc --noEmit -p tsconfig.build-config.json +``` diff --git a/packages/custom-esbuild/package.json b/packages/custom-esbuild/package.json index b4902c1d6e..85301d29d9 100644 --- a/packages/custom-esbuild/package.json +++ b/packages/custom-esbuild/package.json @@ -31,29 +31,39 @@ ], "scripts": { "prebuild": "yarn clean", - "build": "yarn prebuild && tsc && ts-node ../../merge-schemes.ts && yarn postbuild", + "build": "yarn prebuild && tsc && jiti ../../merge-schemes.ts && tsc -p tsconfig.schematics.json && yarn copy:schematics && yarn postbuild", + "copy:schematics": "copyfiles -u 2 \"src/schematics/**/*.json\" dist/schematics", "postbuild": "yarn test && yarn run e2e", "test": "jest --config ../../jest-ut.config.js", "e2e": "jest --config ../../jest-e2e.config.js", "clean": "rimraf dist" }, "builders": "builders.json", + "schematics": "./dist/schematics/collection.json", + "ng-add": { + "save": "devDependencies" + }, + "ng-update": { + "migrations": "./dist/schematics/migrations.json" + }, "dependencies": { "@angular-builders/common": "workspace:*", - "@angular-devkit/architect": ">=0.2100.0 < 0.2200.0", - "@angular-devkit/core": "^21.0.0", - "@angular/build": "^21.0.0" + "@angular-devkit/architect": ">=0.2200.0 < 0.2300.0", + "@angular-devkit/core": "^22.0.0", + "@angular-devkit/schematics": "^22.0.0", + "@angular/build": "^22.0.0", + "@schematics/angular": "^22.0.0" }, "peerDependencies": { - "@angular/compiler-cli": "^21.0.0", + "@angular/compiler-cli": "^22.0.0", "rxjs": ">=7.0.0", "vitest": ">=2" }, "devDependencies": { + "copyfiles": "^2.4.1", "esbuild": "0.28.0", "jest": "30.4.2", "rimraf": "^6.0.0", - "ts-node": "^10.0.0", - "typescript": "5.9.3" + "typescript": "6.0.3" } } diff --git a/packages/custom-esbuild/src/load-index-html-transformer.spec.ts b/packages/custom-esbuild/src/load-index-html-transformer.spec.ts index 0d73075032..62887d208f 100644 --- a/packages/custom-esbuild/src/load-index-html-transformer.spec.ts +++ b/packages/custom-esbuild/src/load-index-html-transformer.spec.ts @@ -1,15 +1,22 @@ import { loadIndexHtmlTransformer } from './load-index-html-transformer'; import { Target } from '@angular-devkit/architect'; +import { loadModule } from '@angular-builders/common'; + +// Module loading is the responsibility of `@angular-builders/common` (covered by +// its own load-module.spec). Here we mock `loadModule` so this test exercises +// loadIndexHtmlTransformer's own wiring (passing the target to the transformer). +jest.mock('@angular-builders/common', () => ({ loadModule: jest.fn() })); + +const mockedLoadModule = loadModule as jest.MockedFunction; describe('loadIndexHtmlTransformer', () => { beforeEach(() => { - jest.resetModules(); jest.clearAllMocks(); }); it('should pass the target to the transformer', async () => { const transformIndexHtml = jest.fn(); - jest.mock('test/test-index-transform.js', () => transformIndexHtml, { virtual: true }); + mockedLoadModule.mockResolvedValue(transformIndexHtml as never); const mockTarget = { project: 'test', target: 'test' } as Target; const transform = await loadIndexHtmlTransformer( 'test/test-index-transform.js', diff --git a/packages/custom-esbuild/src/load-plugin.spec.ts b/packages/custom-esbuild/src/load-plugin.spec.ts index ecb367b42f..f6d8d67a3a 100644 --- a/packages/custom-esbuild/src/load-plugin.spec.ts +++ b/packages/custom-esbuild/src/load-plugin.spec.ts @@ -1,17 +1,24 @@ import { loadPlugins } from './load-plugins'; import { Target } from '@angular-devkit/architect'; import { Plugin } from 'esbuild'; +import { loadModule } from '@angular-builders/common'; import { CustomEsbuildApplicationSchema } from './custom-esbuild-schema'; +// Module loading is the responsibility of `@angular-builders/common` (covered by +// its own load-module.spec). Here we mock `loadModule` so these tests exercise +// loadPlugins' own logic (factory invocation, argument passing, flattening). +jest.mock('@angular-builders/common', () => ({ loadModule: jest.fn() })); + +const mockedLoadModule = loadModule as jest.MockedFunction; + describe('loadPlugin', () => { beforeEach(() => { - jest.resetModules(); jest.clearAllMocks(); }); it('should load a plugin without configuration', async () => { const mockPlugin = { name: 'mock' } as Plugin; - jest.mock('test/test-plugin.js', () => mockPlugin, { virtual: true }); + mockedLoadModule.mockResolvedValue(mockPlugin as never); const plugin = await loadPlugins( ['test-plugin.js'], './test', @@ -29,7 +36,7 @@ describe('loadPlugin', () => { const pluginFactory = jest.fn().mockReturnValue(mockPlugin); const mockOptions = { tsConfig: './tsconfig.json' } as CustomEsbuildApplicationSchema; const mockTarget = { target: 'test' } as Target; - jest.mock('test/test-plugin.js', () => pluginFactory, { virtual: true }); + mockedLoadModule.mockResolvedValue(pluginFactory as never); const plugin = await loadPlugins( ['test-plugin.js'], './test', @@ -47,7 +54,7 @@ describe('loadPlugin', () => { const pluginFactory = jest.fn(); const mockOptions = { tsConfig: './tsconfig.json' } as CustomEsbuildApplicationSchema; const mockTarget = { target: 'test' } as Target; - jest.mock('test/test-plugin.js', () => pluginFactory, { virtual: true }); + mockedLoadModule.mockResolvedValue(pluginFactory as never); const plugin = await loadPlugins( [{ path: 'test-plugin.js', options: { test: 'test' } }], './test', diff --git a/packages/custom-esbuild/src/schematics/collection.json b/packages/custom-esbuild/src/schematics/collection.json new file mode 100644 index 0000000000..e8ce29364c --- /dev/null +++ b/packages/custom-esbuild/src/schematics/collection.json @@ -0,0 +1,10 @@ +{ + "$schema": "../../../../node_modules/@angular-devkit/schematics/collection-schema.json", + "schematics": { + "ng-add": { + "description": "Wire @angular-builders/custom-esbuild into the workspace (build, serve, and Vitest unit-test targets).", + "factory": "./ng-add/index#ngAdd", + "schema": "./ng-add/schema.json" + } + } +} diff --git a/packages/custom-esbuild/src/schematics/migrations.json b/packages/custom-esbuild/src/schematics/migrations.json new file mode 100644 index 0000000000..1ebe36360d --- /dev/null +++ b/packages/custom-esbuild/src/schematics/migrations.json @@ -0,0 +1,10 @@ +{ + "$schema": "../../../../node_modules/@angular-devkit/schematics/collection-schema.json", + "schematics": { + "migration-v22": { + "version": "22.0.0", + "description": "Migrate from ts-node to the jiti loader: strip the ts-node/esm NODE_OPTIONS workaround from npm scripts, remove ts-node/tsconfig-paths devDependencies, lift `ts-node` tsconfig path options into compilerOptions, and advise on the build-time type-checking change.", + "factory": "./migrations/v22/index#migrateV22" + } + } +} diff --git a/packages/custom-esbuild/src/schematics/migrations/v22/index.spec.ts b/packages/custom-esbuild/src/schematics/migrations/v22/index.spec.ts new file mode 100644 index 0000000000..13fc3bab54 --- /dev/null +++ b/packages/custom-esbuild/src/schematics/migrations/v22/index.spec.ts @@ -0,0 +1,25 @@ +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; +import { SchematicTestHarness } from '@angular-builders/common/schematics/testing'; + +// Run the migration through the REAL migrations.json collection so the `ng-update` +// wiring (factory path, schematic name) is exercised — not just the shared rule. +const COLLECTION = require.resolve('../../../../src/schematics/migrations.json'); + +describe('custom-esbuild migration-v22 (jiti loader) wiring', () => { + it('runs via the collection and applies the jiti loader migration', async () => { + const runner = new SchematicTestRunner('custom-esbuild-migrations', COLLECTION); + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const pkg = JSON.parse(tree.readText('/package.json')); + pkg.scripts = { + ...(pkg.scripts ?? {}), + 'build-ts': "NODE_OPTIONS='--loader ts-node/esm' ng build", + }; + pkg.devDependencies = { ...(pkg.devDependencies ?? {}), 'ts-node': '10.9.2' }; + tree.overwrite('/package.json', JSON.stringify(pkg, null, 2)); + + const out = (await runner.runSchematic('migration-v22', {}, tree)) as UnitTestTree; + const result = JSON.parse(out.readText('/package.json')); + expect(result.scripts['build-ts']).toBe('ng build'); + expect(result.devDependencies['ts-node']).toBeUndefined(); + }); +}); diff --git a/packages/custom-esbuild/src/schematics/migrations/v22/index.ts b/packages/custom-esbuild/src/schematics/migrations/v22/index.ts new file mode 100644 index 0000000000..144ea25e43 --- /dev/null +++ b/packages/custom-esbuild/src/schematics/migrations/v22/index.ts @@ -0,0 +1,10 @@ +import { Rule } from '@angular-devkit/schematics'; +import { migrateToJitiLoader } from '@angular-builders/common/schematics'; + +/** + * v22: the builder now loads TypeScript esbuild plugins and index transformers via jiti + * instead of ts-node. Delegates to the shared migration in `@angular-builders/common`. + */ +export function migrateV22(): Rule { + return migrateToJitiLoader('@angular-builders/custom-esbuild'); +} diff --git a/packages/custom-esbuild/src/schematics/ng-add/index.spec.ts b/packages/custom-esbuild/src/schematics/ng-add/index.spec.ts new file mode 100644 index 0000000000..63ba5ab162 --- /dev/null +++ b/packages/custom-esbuild/src/schematics/ng-add/index.spec.ts @@ -0,0 +1,255 @@ +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; +import { readWorkspace, updateWorkspace } from '@schematics/angular/utility'; +import { SchematicTestHarness } from '@angular-builders/common/schematics/testing'; + +const COLLECTION = require.resolve('../../../src/schematics/collection.json'); + +function runner(): SchematicTestRunner { + return new SchematicTestRunner('custom-esbuild', COLLECTION); +} + +async function ngAdd( + tree: UnitTestTree, + options: Record = {}, +): Promise { + return runner().runSchematic('ng-add', options, tree); +} + +describe('custom-esbuild ng-add: build + serve rewrite', () => { + it('rewrites build → :application and serve → :dev-server, adding self to devDeps', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + + const seeded = (await runner() + .callRule( + updateWorkspace((workspace) => { + const project = workspace.projects.get('app')!; + project.targets.set('build', { + builder: '@angular/build:application', + options: { tsConfig: 'tsconfig.app.json', outputPath: 'dist/app' }, + }); + project.targets.set('serve', { + builder: '@angular/build:dev-server', + options: { buildTarget: 'app:build' }, + }); + }), + tree, + ) + .toPromise()) as UnitTestTree; + + const out = await ngAdd(seeded, { project: 'app' }); + + const ws = await readWorkspace(out); + const build = ws.projects.get('app')!.targets.get('build')!; + const serve = ws.projects.get('app')!.targets.get('serve')!; + + expect(build.builder).toBe('@angular-builders/custom-esbuild:application'); + expect((build.options as Record).tsConfig).toBe('tsconfig.app.json'); + expect((build.options as Record).outputPath).toBe('dist/app'); + + expect(serve.builder).toBe('@angular-builders/custom-esbuild:dev-server'); + expect((serve.options as Record).buildTarget).toBe('app:build'); + + const pkg = JSON.parse(out.readText('/package.json')); + expect(pkg.devDependencies['@angular-builders/custom-esbuild']).toBeDefined(); + }); +}); + +describe('custom-esbuild ng-add: webpack-build guard (spec §12.3)', () => { + async function seedWebpackBuild(builder: string): Promise { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + return (await runner() + .callRule( + updateWorkspace((workspace) => { + const project = workspace.projects.get('app')!; + project.targets.set('build', { builder, options: { outputPath: 'dist/app' } }); + project.targets.set('serve', { + builder: '@angular-devkit/build-angular:dev-server', + options: { buildTarget: 'app:build' }, + }); + }), + tree, + ) + .toPromise()) as UnitTestTree; + } + + it('does NOT rewrite an @angular-devkit/build-angular:browser build; logs an advisory', async () => { + const seeded = await seedWebpackBuild('@angular-devkit/build-angular:browser'); + const r = runner(); + const logs: string[] = []; + r.logger.subscribe((entry) => logs.push(entry.message)); + const out = await r.runSchematic('ng-add', { project: 'app' }, seeded); + const ws = await readWorkspace(out); + expect(ws.projects.get('app')!.targets.get('build')!.builder).toBe('@angular-devkit/build-angular:browser'); + expect(ws.projects.get('app')!.targets.get('serve')!.builder).toBe('@angular-devkit/build-angular:dev-server'); + expect(logs.some((m) => m.includes('use-application-builder'))).toBe(true); + expect(logs.some((m) => m.includes('--from-webpack'))).toBe(true); + }); + + it('does NOT rewrite a custom-webpack:browser build; logs an advisory', async () => { + const seeded = await seedWebpackBuild('@angular-builders/custom-webpack:browser'); + const r = runner(); + const logs: string[] = []; + r.logger.subscribe((entry) => logs.push(entry.message)); + const out = await r.runSchematic('ng-add', { project: 'app' }, seeded); + const ws = await readWorkspace(out); + expect(ws.projects.get('app')!.targets.get('build')!.builder).toBe('@angular-builders/custom-webpack:browser'); + expect(logs.some((m) => m.includes('use-application-builder'))).toBe(true); + }); + + it('--from-webpack forces the mechanical build/serve rewrite from a webpack build', async () => { + const seeded = await seedWebpackBuild('@angular-devkit/build-angular:browser'); + const out = await ngAdd(seeded, { project: 'app', fromWebpack: true }); + const ws = await readWorkspace(out); + expect(ws.projects.get('app')!.targets.get('build')!.builder).toBe('@angular-builders/custom-esbuild:application'); + expect((ws.projects.get('app')!.targets.get('build')!.options as Record).outputPath).toBe('dist/app'); + expect(ws.projects.get('app')!.targets.get('serve')!.builder).toBe('@angular-builders/custom-esbuild:dev-server'); + }); +}); + +describe('custom-esbuild ng-add: Vitest test target', () => { + it('auto-rewrites @angular/build:unit-test → :unit-test and wires buildTarget', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const seeded = (await runner() + .callRule( + updateWorkspace((workspace) => { + const project = workspace.projects.get('app')!; + project.targets.set('build', { builder: '@angular/build:application', options: { tsConfig: 'tsconfig.app.json' } }); + project.targets.set('test', { builder: '@angular/build:unit-test', options: { tsConfig: 'tsconfig.spec.json' } }); + }), + tree, + ) + .toPromise()) as UnitTestTree; + + const out = await ngAdd(seeded, { project: 'app' }); + const ws = await readWorkspace(out); + const test = ws.projects.get('app')!.targets.get('test')!; + expect(test.builder).toBe('@angular-builders/custom-esbuild:unit-test'); + expect((test.options as Record).buildTarget).toBe('app:build'); + expect((test.options as Record).tsConfig).toBe('tsconfig.spec.json'); + }); +}); + +describe('custom-esbuild ng-add: Karma / Jest test target', () => { + it('leaves a Karma test target untouched and logs an advisory', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const seeded = (await runner() + .callRule( + updateWorkspace((workspace) => { + const project = workspace.projects.get('app')!; + project.targets.set('build', { builder: '@angular/build:application', options: {} }); + project.targets.set('test', { builder: '@angular-devkit/build-angular:karma', options: { karmaConfig: 'karma.conf.js' } }); + }), + tree, + ) + .toPromise()) as UnitTestTree; + + const r = runner(); + const logs: string[] = []; + r.logger.subscribe((entry) => logs.push(entry.message)); + const out = await r.runSchematic('ng-add', { project: 'app' }, seeded); + const ws = await readWorkspace(out); + expect(ws.projects.get('app')!.targets.get('test')!.builder).toBe('@angular-devkit/build-angular:karma'); + expect((ws.projects.get('app')!.targets.get('test')!.options as Record).karmaConfig).toBe('karma.conf.js'); + expect(logs.some((m) => m.includes('custom-esbuild:unit-test'))).toBe(true); + }); + + it('leaves a Jest test target untouched and logs an advisory', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const seeded = (await runner() + .callRule( + updateWorkspace((workspace) => { + const project = workspace.projects.get('app')!; + project.targets.set('build', { builder: '@angular/build:application', options: {} }); + project.targets.set('test', { builder: '@angular-builders/jest:run', options: {} }); + }), + tree, + ) + .toPromise()) as UnitTestTree; + + const r = runner(); + const logs: string[] = []; + r.logger.subscribe((entry) => logs.push(entry.message)); + const out = await r.runSchematic('ng-add', { project: 'app' }, seeded); + const ws = await readWorkspace(out); + expect(ws.projects.get('app')!.targets.get('test')!.builder).toBe('@angular-builders/jest:run'); + expect(logs.some((m) => m.includes('custom-esbuild:unit-test'))).toBe(true); + }); +}); + +describe('custom-esbuild ng-add: --unit-test flag', () => { + it('force-creates a Vitest unit-test target when none exists', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const seeded = (await runner() + .callRule( + updateWorkspace((workspace) => { + const project = workspace.projects.get('app')!; + project.targets.set('build', { builder: '@angular/build:application', options: {} }); + project.targets.delete('test'); + }), + tree, + ) + .toPromise()) as UnitTestTree; + + const out = await ngAdd(seeded, { project: 'app', unitTest: true }); + const ws = await readWorkspace(out); + const test = ws.projects.get('app')!.targets.get('test'); + expect(test).toBeDefined(); + expect(test!.builder).toBe('@angular-builders/custom-esbuild:unit-test'); + expect((test!.options as Record).buildTarget).toBe('app:build'); + }); + + it('rewrites an existing Vitest target the same way under --unit-test', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const seeded = (await runner() + .callRule( + updateWorkspace((workspace) => { + const project = workspace.projects.get('app')!; + project.targets.set('build', { builder: '@angular/build:application', options: {} }); + project.targets.set('test', { builder: '@angular/build:unit-test', options: {} }); + }), + tree, + ) + .toPromise()) as UnitTestTree; + + const out = await ngAdd(seeded, { project: 'app', unitTest: true }); + const ws = await readWorkspace(out); + const test = ws.projects.get('app')!.targets.get('test')!; + expect(test.builder).toBe('@angular-builders/custom-esbuild:unit-test'); + expect((test.options as Record).buildTarget).toBe('app:build'); + }); +}); + +describe('custom-esbuild ng-add: idempotency', () => { + it('is a no-op when build is already :application (running twice == once)', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const seeded = (await runner() + .callRule( + updateWorkspace((workspace) => { + const project = workspace.projects.get('app')!; + project.targets.set('build', { builder: '@angular/build:application', options: {} }); + project.targets.set('serve', { builder: '@angular/build:dev-server', options: { buildTarget: 'app:build' } }); + project.targets.set('test', { builder: '@angular/build:unit-test', options: { tsConfig: 'tsconfig.spec.json' } }); + }), + tree, + ) + .toPromise()) as UnitTestTree; + + const once = await ngAdd(seeded, { project: 'app' }); + const twice = await ngAdd(once, { project: 'app' }); + + const wsOnce = await readWorkspace(once); + const wsTwice = await readWorkspace(twice); + + for (const ws of [wsOnce, wsTwice]) { + const project = ws.projects.get('app')!; + expect(project.targets.get('build')!.builder).toBe('@angular-builders/custom-esbuild:application'); + expect(project.targets.get('serve')!.builder).toBe('@angular-builders/custom-esbuild:dev-server'); + const test = project.targets.get('test')!; + expect(test.builder).toBe('@angular-builders/custom-esbuild:unit-test'); + expect((test.options as Record).buildTarget).toBe('app:build'); + expect((test.options as Record).tsConfig).toBe('tsconfig.spec.json'); + } + + expect(twice.readText('/angular.json')).toBe(once.readText('/angular.json')); + }); +}); diff --git a/packages/custom-esbuild/src/schematics/ng-add/index.ts b/packages/custom-esbuild/src/schematics/ng-add/index.ts new file mode 100644 index 0000000000..bae89b5b7c --- /dev/null +++ b/packages/custom-esbuild/src/schematics/ng-add/index.ts @@ -0,0 +1,90 @@ +import { chain, Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; +import { workspaces } from '@angular-devkit/core'; +import { readWorkspace } from '@schematics/angular/utility'; +import { + addBuilderDevDependency, + detectTestBuilder, + getProjectsToTarget, + setBuilderForTarget, +} from '@angular-builders/common/schematics'; + +import { Schema } from './schema'; + +const PACKAGE_NAME = '@angular-builders/custom-esbuild'; +const BUILD_BUILDER = '@angular-builders/custom-esbuild:application'; +const SERVE_BUILDER = '@angular-builders/custom-esbuild:dev-server'; +const TEST_BUILDER = '@angular-builders/custom-esbuild:unit-test'; + +const ESBUILD_BUILD = '@angular/build:application'; +const WEBPACK_BUILDS = [ + '@angular-devkit/build-angular:browser', + '@angular-builders/custom-webpack:browser', +]; + +// eslint-disable-next-line @typescript-eslint/no-var-requires +const VERSION: string = require('../../../package.json').version; + +function classifyBuildBuilder(builder: string | undefined): 'esbuild' | 'webpack' | 'none' | 'other' { + if (!builder) return 'none'; + if (builder === ESBUILD_BUILD || builder === BUILD_BUILDER) return 'esbuild'; + if (WEBPACK_BUILDS.includes(builder)) return 'webpack'; + return 'other'; +} + +export function ngAdd(options: Schema): Rule { + return async (tree: Tree, context: SchematicContext) => { + const workspace = (await readWorkspace(tree)) as unknown as workspaces.WorkspaceDefinition; + const projects = getProjectsToTarget(workspace, options.project); + + const rules: Rule[] = [ + addBuilderDevDependency(PACKAGE_NAME, `~${VERSION}`, { install: true }), + ]; + + for (const projectName of projects) { + const project = workspace.projects.get(projectName)!; + const buildKind = classifyBuildBuilder(project.targets.get('build')?.builder); + const wantsForcedRewrite = options.fromWebpack === true; + + if (buildKind === 'esbuild' || wantsForcedRewrite) { + if (project.targets.has('build')) { + rules.push(setBuilderForTarget(projectName, 'build', BUILD_BUILDER)); + } + if (project.targets.has('serve')) { + rules.push(setBuilderForTarget(projectName, 'serve', SERVE_BUILDER)); + } + } else if (buildKind === 'webpack') { + context.logger.info( + `[@angular-builders/custom-esbuild] Project "${projectName}" builds with a ` + + `webpack builder ("${project.targets.get('build')!.builder}"). custom-esbuild ` + + `runs on esbuild, so it will NOT rewrite your build target automatically — that ` + + `would strand your webpack.config.js. To migrate: (1) run Angular's ` + + `"use-application-builder" migration to move onto "@angular/build:application", ` + + `(2) re-run "ng add @angular-builders/custom-esbuild", then (3) port your ` + + `webpack.config.js plugins to esbuild "codePlugins" manually. ` + + `To skip the guard and force only the target rewrite now, re-run with "--from-webpack". Leaving build/serve unchanged.`, + ); + } + + const testKind = detectTestBuilder(workspace, projectName); + const wantsForcedVitest = options.unitTest === true; + + if (wantsForcedVitest || testKind === 'vitest') { + rules.push( + setBuilderForTarget(projectName, 'test', TEST_BUILDER, { + buildTarget: `${projectName}:build`, + }), + ); + } else if (testKind === 'karma' || testKind === 'jest') { + context.logger.info( + `[@angular-builders/custom-esbuild] Project "${projectName}" uses a ` + + `${testKind === 'karma' ? 'Karma' : 'Jest'} test runner; esbuild plugins do not ` + + `apply there. To run your tests through esbuild/Vitest with the same plugins, ` + + `switch the test target to "${TEST_BUILDER}" (or run ` + + `"ng add @angular-builders/custom-esbuild --unit-test"). Leaving the test target unchanged.`, + ); + } + } + + return chain(rules); + }; +} diff --git a/packages/custom-esbuild/src/schematics/ng-add/schema.json b/packages/custom-esbuild/src/schematics/ng-add/schema.json new file mode 100644 index 0000000000..b409b7f776 --- /dev/null +++ b/packages/custom-esbuild/src/schematics/ng-add/schema.json @@ -0,0 +1,26 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "CustomEsbuildNgAdd", + "title": "@angular-builders/custom-esbuild ng-add options", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The project to add custom-esbuild to.", + "$default": { "$source": "projectName" } + }, + "unitTest": { + "type": "boolean", + "description": "Force-create a Vitest unit-test target.", + "default": false, + "alias": "unit-test" + }, + "fromWebpack": { + "type": "boolean", + "description": "Force the mechanical target rewrite even when the current build is a webpack builder.", + "default": false, + "alias": "from-webpack" + } + }, + "additionalProperties": false +} diff --git a/packages/custom-esbuild/src/schematics/ng-add/schema.ts b/packages/custom-esbuild/src/schematics/ng-add/schema.ts new file mode 100644 index 0000000000..9f1b213a83 --- /dev/null +++ b/packages/custom-esbuild/src/schematics/ng-add/schema.ts @@ -0,0 +1,5 @@ +export interface Schema { + project?: string; + unitTest?: boolean; + fromWebpack?: boolean; +} diff --git a/packages/custom-esbuild/tests/e2e/esbuild-add.ng-add.json b/packages/custom-esbuild/tests/e2e/esbuild-add.ng-add.json new file mode 100644 index 0000000000..49c740f9c2 --- /dev/null +++ b/packages/custom-esbuild/tests/e2e/esbuild-add.ng-add.json @@ -0,0 +1,14 @@ +{ + "generate": { + "name": "esbuild-add-app", + "args": ["--routing=false", "--style=scss"] + }, + "package": "@angular-builders/custom-esbuild", + "ngAddArgs": [], + "asserts": [ + { "fn": "assertBuilderForTarget", "args": ["esbuild-add-app", "build", "@angular-builders/custom-esbuild:application"] }, + { "fn": "assertBuilderForTarget", "args": ["esbuild-add-app", "serve", "@angular-builders/custom-esbuild:dev-server"] }, + { "fn": "assertDevDependency", "args": ["@angular-builders/custom-esbuild"] } + ], + "post": ["npx ng build"] +} diff --git a/packages/custom-esbuild/tests/e2e/webpack-guard.ng-add.json b/packages/custom-esbuild/tests/e2e/webpack-guard.ng-add.json new file mode 100644 index 0000000000..f0138df872 --- /dev/null +++ b/packages/custom-esbuild/tests/e2e/webpack-guard.ng-add.json @@ -0,0 +1,18 @@ +{ + "generate": { + "name": "webpack-guard-app", + "args": ["--routing=false", "--style=scss"] + }, + "prepareWorkdir": [ + "node -e \"const fs=require('fs'),f='angular.json',j=JSON.parse(fs.readFileSync(f)),a=j.projects['webpack-guard-app'].architect;a.build.builder='@angular-devkit/build-angular:browser';a.serve.builder='@angular-devkit/build-angular:dev-server';fs.writeFileSync(f,JSON.stringify(j,null,2));\"" + ], + "package": "@angular-builders/custom-esbuild", + "ngAddArgs": [], + "expectAddSucceeds": true, + "asserts": [ + { "fn": "assertBuilderForTarget", "args": ["webpack-guard-app", "build", "@angular-devkit/build-angular:browser"] }, + { "fn": "assertBuilderForTarget", "args": ["webpack-guard-app", "serve", "@angular-devkit/build-angular:dev-server"] }, + { "fn": "assertLogContains", "args": ["use-application-builder"] } + ], + "post": [] +} diff --git a/packages/custom-esbuild/tests/integration.js b/packages/custom-esbuild/tests/integration.js index ea0acdbce3..d84f97d703 100644 --- a/packages/custom-esbuild/tests/integration.js +++ b/packages/custom-esbuild/tests/integration.js @@ -1,4 +1,25 @@ module.exports = [ + // --- ng add e2e (Plan 04): real CLI ng add on an inline-generated app --- + // [OPTIONAL] esbuild safe-rewrite — least regression-prone; demotable under ci:full if matrix + // cost demands it (the webpack-guard case already proves the build-builder classifier). + { + id: 'ng-add-esbuild-rewrite', + name: 'custom-esbuild: ng add build/serve rewrite', + purpose: 'ng add rewrites esbuild build/serve to custom-esbuild; ng build green', + app: '.', + command: + 'node scripts/e2e-ng-add.js --spec packages/custom-esbuild/tests/e2e/esbuild-add.ng-add.json', + }, + { + id: 'ng-add-esbuild-webpack-guard', + name: 'custom-esbuild: ng add webpack guard', + purpose: + 'ng add leaves a webpack build untouched and emits the use-application-builder advisory', + app: '.', + command: + 'node scripts/e2e-ng-add.js --spec packages/custom-esbuild/tests/e2e/webpack-guard.ng-add.json', + }, + // Vitest builder tests { id: 'vitest-builder-esm-config', @@ -33,7 +54,7 @@ module.exports = [ name: 'custom-esbuild: Vitest TS config', purpose: 'Unit test builder loads TypeScript config', app: 'examples/custom-esbuild/sanity-esbuild-app-esm', - command: 'yarn test-ts -c tsEsm --no-watch', + command: 'yarn test -c tsEsm --no-watch', }, // Application builder + plugins tests @@ -86,15 +107,14 @@ module.exports = [ name: 'custom-esbuild: TS plugins ESM imports', purpose: 'Builder loads TypeScript plugins with ESM imports', app: 'examples/custom-esbuild/sanity-esbuild-app-esm', - command: 'yarn build-ts -c tsEsm', + command: 'yarn build -c tsEsm', }, // Target options accessibility (#1690, #1710) { id: 'target-options-in-plugin-and-transformer', name: 'custom-esbuild: target.configuration accessible in plugin and indexHtmlTransformer', - purpose: - 'Factory plugin and indexHtmlTransformer both receive target.configuration at runtime', + purpose: 'Factory plugin and indexHtmlTransformer both receive target.configuration at runtime', app: 'examples/custom-esbuild/sanity-esbuild-app', command: 'yarn build-target-options', }, diff --git a/packages/custom-esbuild/tsconfig.json b/packages/custom-esbuild/tsconfig.json index aa1efcb5da..1d3117a439 100644 --- a/packages/custom-esbuild/tsconfig.json +++ b/packages/custom-esbuild/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "dist" + "outDir": "dist", + "rootDir": "src" }, "files": [ "src/index.ts" diff --git a/packages/custom-esbuild/tsconfig.schematics.json b/packages/custom-esbuild/tsconfig.schematics.json new file mode 100644 index 0000000000..e4f56b977a --- /dev/null +++ b/packages/custom-esbuild/tsconfig.schematics.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.schematics.json", + "compilerOptions": { + "rootDir": "src/schematics", + "outDir": "dist/schematics" + }, + "include": ["src/schematics/**/*.ts"], + "exclude": ["node_modules", "**/*.spec.ts", "**/files/**"] +} diff --git a/packages/custom-webpack/README.md b/packages/custom-webpack/README.md index ac9979110a..5d1e781c44 100644 --- a/packages/custom-webpack/README.md +++ b/packages/custom-webpack/README.md @@ -36,6 +36,7 @@ Allow customizing build configuration without ejecting webpack configuration (`n
Click to expand +- [Version 21](https://github.com/just-jeb/angular-builders/blob/21.x.x/packages/custom-webpack/README.md) - [Version 20](https://github.com/just-jeb/angular-builders/blob/20.x.x/packages/custom-webpack/README.md) - [Version 19](https://github.com/just-jeb/angular-builders/blob/19.x.x/packages/custom-webpack/README.md) - [Version 18](https://github.com/just-jeb/angular-builders/blob/18.x.x/packages/custom-webpack/README.md) @@ -57,7 +58,7 @@ Allow customizing build configuration without ejecting webpack configuration (`n ## Prerequisites: -- [Angular CLI 21](https://www.npmjs.com/package/@angular/cli) +- [Angular CLI 22](https://www.npmjs.com/package/@angular/cli) # Usage @@ -583,37 +584,25 @@ In the example we add a paragraph with build configuration to your `index.html`. Full example [here](../../examples/custom-webpack/full-cycle-app). -### Using a Custom TypeScript Configuration for indexTransform +### Type-checking TypeScript configs and transforms -If your `indexTransform` file requires different TypeScript settings than the build target's `tsConfig` (different `target`, custom `paths`, additional `lib` entries, etc.), you can specify them via the `ts-node` section of your `tsconfig.json`. The builder picks up these options when registering ts-node for transform/config loading. +`customWebpackConfig` and `indexTransform` files written in TypeScript are loaded with [jiti](https://github.com/unjs/jiti) and **transpiled, not type-checked**, at build time. Your editor still type-checks them as you write, and TypeScript path aliases (`baseUrl`/`paths`) declared in the build target's `tsConfig` are honored. -For example, to make `target` and `paths` available specifically when ts-node loads your transform: +To enforce type-checking of these files in CI, add a dedicated tsconfig that includes them and run `tsc`: -`tsconfig.json`: +`tsconfig.build-config.json`: -```json +```jsonc { - "compilerOptions": { - ... - }, - "ts-node": { - "compilerOptions": { - "target": "ES2022", - "paths": { - "@shared/*": ["./shared/*"] - } - } - } + "extends": "./tsconfig.json", + "compilerOptions": { "noEmit": true }, + "include": ["webpack.config.ts", "index-html-transform.ts"], } ``` -> **Note:** ts-node is registered once per builder run; the first tsconfig encountered governs subsequent loads in the same process. If you have both an `indexTransform.ts` and a `webpack.config.ts`, both will resolve against the same ts-node configuration. - -> Some options the builder explicitly overrides (notably `module: "commonjs"`) cannot be changed through this mechanism. Use it for options the builder doesn't hard-code. - -For more details on `ts-node` configuration options, see the [ts-node documentation](https://typestrong.org/ts-node/docs/configuration/#via-tsconfigjson-recommended). - -The same approach applies to `customWebpackConfig` if it's written in TypeScript. +```bash +tsc --noEmit -p tsconfig.build-config.json +``` # ES Modules (ESM) Support @@ -621,8 +610,7 @@ Custom Webpack builder fully supports ESM. - If your app has `"type": "module"` both `custom-webpack.js` and `index-transform.js` will be treated as ES modules, unless you change their file extension to `.cjs`. In that case they'll be treated as CommonJS Modules. [Example](../../examples/custom-webpack/sanity-app-esm). - For `"type": "commonjs"` (or unspecified type) both `custom-webpack.js` and `index-transform.js` will be treated as CommonJS modules unless you change their file extension to `.mjs`. In that case they'll be treated as ES Modules. [Example](../../examples/custom-webpack/sanity-app). -- If you want to use TS config in ESM app, you must set the loader to `ts-node/esm` when running `ng build`. Also, in that case `tsconfig.json` for `ts-node` no longer defaults to `tsConfig` from the `browser` target - you have to specify it manually via environment variable. [Example](../../examples/custom-webpack/sanity-app-esm/package.json#L10). - _Note that tsconfig paths are not supported in TS configs within ESM apps. That is because [tsconfig-paths](https://github.com/dividab/tsconfig-paths) do not support ESM._ +- **TypeScript configs and transforms work in both CommonJS and ESM projects with no extra setup** — just point the builder at your `.ts` file. (Earlier versions required forcing a `ts-node/esm` loader through `NODE_OPTIONS`; that is no longer necessary.) TypeScript path aliases are supported in both module formats. # Verbose Logging diff --git a/packages/custom-webpack/package.json b/packages/custom-webpack/package.json index 80e3c5332d..d5f69e29a6 100644 --- a/packages/custom-webpack/package.json +++ b/packages/custom-webpack/package.json @@ -31,30 +31,40 @@ ], "scripts": { "prebuild": "yarn clean", - "build": "yarn prebuild && tsc && ts-node ../../merge-schemes.ts && yarn postbuild", + "build": "yarn prebuild && tsc && tsc -p tsconfig.schematics.json && yarn copy:schematics && jiti ../../merge-schemes.ts && yarn postbuild", + "copy:schematics": "copyfiles -u 2 \"src/schematics/**/*.json\" dist/schematics && copyfiles -u 2 \"src/schematics/**/files/**\" dist/schematics", "postbuild": "yarn test && yarn run e2e", "test": "jest --config ../../jest-ut.config.js", "e2e": "jest --config ../../jest-e2e.config.js", "clean": "rimraf dist" }, "builders": "builders.json", + "schematics": "./dist/schematics/collection.json", + "ng-add": { + "save": "devDependencies" + }, + "ng-update": { + "migrations": "./dist/schematics/migrations.json" + }, "dependencies": { "@angular-builders/common": "workspace:*", - "@angular-devkit/architect": ">=0.2100.0 < 0.2200.0", - "@angular-devkit/build-angular": "^21.0.0", - "@angular-devkit/core": "^21.0.0", - "@angular/build": "^21.0.0", + "@angular-devkit/architect": ">=0.2200.0 < 0.2300.0", + "@angular-devkit/build-angular": "^22.0.0", + "@angular-devkit/core": "^22.0.0", + "@angular-devkit/schematics": "^22.0.0", + "@angular/build": "^22.0.0", + "@schematics/angular": "^22.0.0", "lodash": "^4.17.15", "webpack-merge": "^6.0.0" }, "peerDependencies": { - "@angular/compiler-cli": "^21.0.0", + "@angular/compiler-cli": "^22.0.0", "rxjs": ">=7.0.0" }, "devDependencies": { + "copyfiles": "^2.4.1", "jest": "30.4.2", "rimraf": "^6.0.0", - "ts-node": "^10.0.0", - "typescript": "5.9.3" + "typescript": "6.0.3" } } diff --git a/packages/custom-webpack/src/custom-webpack-builder.spec.ts b/packages/custom-webpack/src/custom-webpack-builder.spec.ts index 396ab9b130..59180cce2e 100644 --- a/packages/custom-webpack/src/custom-webpack-builder.spec.ts +++ b/packages/custom-webpack/src/custom-webpack-builder.spec.ts @@ -2,11 +2,20 @@ import { logging, Path } from '@angular-devkit/core'; import { Configuration } from 'webpack'; import { CustomizeRule } from 'webpack-merge'; +import { loadModule } from '@angular-builders/common'; + import { CustomWebpackBuilder, defaultWebpackConfigPath } from './custom-webpack-builder'; import { MergeRules } from './custom-webpack-builder-config'; import * as webpackConfigMerger from './webpack-config-merger'; import { TargetOptions } from './type-definition'; +// Module loading is the responsibility of `@angular-builders/common` (covered by +// its own load-module.spec). We mock `loadModule` so these tests exercise the +// builder's own logic (factory vs object vs promise handling, merge, verbose logging). +jest.mock('@angular-builders/common', () => ({ loadModule: jest.fn() })); + +const mockedLoadModule = loadModule as jest.MockedFunction; + const baseWebpackConfig = { entry: './main.ts', }; @@ -54,8 +63,10 @@ const customWebpackFunctionObj = { const tsConfig = './tsconfig.app.json'; -function createConfigFile(fileName: string, content: T) { - jest.mock(`${__dirname}/${fileName}`, () => content, { virtual: true }); +function createConfigFile(_fileName: string, content: T) { + // The builder loads the user webpack config through `loadModule`; returning the + // content from the mock stands in for the file at `_fileName`. + mockedLoadModule.mockResolvedValue(content as never); } describe('CustomWebpackBuilder', () => { diff --git a/packages/custom-webpack/src/schematics/collection.json b/packages/custom-webpack/src/schematics/collection.json new file mode 100644 index 0000000000..81bbf76e93 --- /dev/null +++ b/packages/custom-webpack/src/schematics/collection.json @@ -0,0 +1,10 @@ +{ + "$schema": "../../../../node_modules/@angular-devkit/schematics/collection-schema.json", + "schematics": { + "ng-add": { + "description": "Wire @angular-builders/custom-webpack into the workspace.", + "factory": "./ng-add/index#ngAdd", + "schema": "./ng-add/schema.json" + } + } +} diff --git a/packages/custom-webpack/src/schematics/migrations.json b/packages/custom-webpack/src/schematics/migrations.json new file mode 100644 index 0000000000..1ebe36360d --- /dev/null +++ b/packages/custom-webpack/src/schematics/migrations.json @@ -0,0 +1,10 @@ +{ + "$schema": "../../../../node_modules/@angular-devkit/schematics/collection-schema.json", + "schematics": { + "migration-v22": { + "version": "22.0.0", + "description": "Migrate from ts-node to the jiti loader: strip the ts-node/esm NODE_OPTIONS workaround from npm scripts, remove ts-node/tsconfig-paths devDependencies, lift `ts-node` tsconfig path options into compilerOptions, and advise on the build-time type-checking change.", + "factory": "./migrations/v22/index#migrateV22" + } + } +} diff --git a/packages/custom-webpack/src/schematics/migrations/v22/index.spec.ts b/packages/custom-webpack/src/schematics/migrations/v22/index.spec.ts new file mode 100644 index 0000000000..1d7bc0cb6c --- /dev/null +++ b/packages/custom-webpack/src/schematics/migrations/v22/index.spec.ts @@ -0,0 +1,25 @@ +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; +import { SchematicTestHarness } from '@angular-builders/common/schematics/testing'; + +// Run the migration through the REAL migrations.json collection so the `ng-update` +// wiring (factory path, schematic name) is exercised — not just the shared rule. +const COLLECTION = require.resolve('../../../../src/schematics/migrations.json'); + +describe('custom-webpack migration-v22 (jiti loader) wiring', () => { + it('runs via the collection and applies the jiti loader migration', async () => { + const runner = new SchematicTestRunner('custom-webpack-migrations', COLLECTION); + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const pkg = JSON.parse(tree.readText('/package.json')); + pkg.scripts = { + ...(pkg.scripts ?? {}), + 'build-ts': "NODE_OPTIONS='--loader ts-node/esm' ng build", + }; + pkg.devDependencies = { ...(pkg.devDependencies ?? {}), 'ts-node': '10.9.2' }; + tree.overwrite('/package.json', JSON.stringify(pkg, null, 2)); + + const out = (await runner.runSchematic('migration-v22', {}, tree)) as UnitTestTree; + const result = JSON.parse(out.readText('/package.json')); + expect(result.scripts['build-ts']).toBe('ng build'); + expect(result.devDependencies['ts-node']).toBeUndefined(); + }); +}); diff --git a/packages/custom-webpack/src/schematics/migrations/v22/index.ts b/packages/custom-webpack/src/schematics/migrations/v22/index.ts new file mode 100644 index 0000000000..d2c9eee98c --- /dev/null +++ b/packages/custom-webpack/src/schematics/migrations/v22/index.ts @@ -0,0 +1,10 @@ +import { Rule } from '@angular-devkit/schematics'; +import { migrateToJitiLoader } from '@angular-builders/common/schematics'; + +/** + * v22: the builder now loads TypeScript webpack configs and index transforms via jiti + * instead of ts-node. Delegates to the shared migration in `@angular-builders/common`. + */ +export function migrateV22(): Rule { + return migrateToJitiLoader('@angular-builders/custom-webpack'); +} diff --git a/packages/custom-webpack/src/schematics/ng-add/files/webpack.config.js.template b/packages/custom-webpack/src/schematics/ng-add/files/webpack.config.js.template new file mode 100644 index 0000000000..0bb73ed506 --- /dev/null +++ b/packages/custom-webpack/src/schematics/ng-add/files/webpack.config.js.template @@ -0,0 +1,17 @@ +/** + * Custom webpack configuration for @angular-builders/custom-webpack. + * + * This object is merged (via webpack-merge) into the Angular CLI's underlying + * webpack config. Add plugins, loaders, resolve aliases, etc. here. + * + * Docs: https://github.com/just-jeb/angular-builders/tree/master/packages/custom-webpack + * + * Example: + * module.exports = { + * plugins: [], + * module: { + * rules: [], + * }, + * }; + */ +module.exports = {}; diff --git a/packages/custom-webpack/src/schematics/ng-add/index.spec.ts b/packages/custom-webpack/src/schematics/ng-add/index.spec.ts new file mode 100644 index 0000000000..4f99155aee --- /dev/null +++ b/packages/custom-webpack/src/schematics/ng-add/index.spec.ts @@ -0,0 +1,128 @@ +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; +import { readWorkspace as getWorkspace } from '@schematics/angular/utility'; +import { SchematicTestHarness } from '@angular-builders/common/schematics/testing'; + +const COLLECTION = require.resolve('../../../src/schematics/collection.json'); + +function runner(): SchematicTestRunner { + return new SchematicTestRunner('custom-webpack', COLLECTION); +} + +async function runNgAdd(tree: UnitTestTree, options: Record = {}): Promise { + return runner().runSchematic('ng-add', options, tree) as Promise; +} + +async function builderOf(tree: UnitTestTree, project: string, target: string): Promise { + const ws = await getWorkspace(tree); + return ws.projects.get(project)?.targets.get(target)?.builder; +} + +async function optionsOf(tree: UnitTestTree, project: string, target: string): Promise> { + const ws = await getWorkspace(tree); + return (ws.projects.get(project)?.targets.get(target)?.options ?? {}) as Record; +} + +describe('custom-webpack ng-add', () => { + it('rewrites build to :browser and serve to :dev-server, preserving options', async () => { + const harness = new SchematicTestHarness(); + let tree = await harness.createWorkspace({ projects: [{ name: 'app' }] }); + + const ws = await getWorkspace(tree); + const proj = ws.projects.get('app')!; + const originalBuildOptions = { ...(proj.targets.get('build')!.options ?? {}) }; + expect(Object.keys(originalBuildOptions).length).toBeGreaterThan(0); + + tree = await runNgAdd(tree); + + expect(await builderOf(tree, 'app', 'build')).toBe('@angular-builders/custom-webpack:browser'); + expect(await builderOf(tree, 'app', 'serve')).toBe('@angular-builders/custom-webpack:dev-server'); + + const buildOptions = await optionsOf(tree, 'app', 'build'); + for (const key of Object.keys(originalBuildOptions)) { + expect(buildOptions[key]).toEqual(originalBuildOptions[key]); + } + }); + + it('adds the builder to devDependencies and schedules install', async () => { + const harness = new SchematicTestHarness(); + let tree = await harness.createWorkspace({ projects: [{ name: 'app' }] }); + const run = runner(); + tree = (await run.runSchematic('ng-add', {}, tree)) as UnitTestTree; + + const pkg = JSON.parse(tree.readText('/package.json')); + expect(pkg.devDependencies['@angular-builders/custom-webpack']).toBeDefined(); + expect(run.tasks.some((t) => t.name === 'node-package')).toBe(true); + }); + + it('scaffolds webpack.config.js and wires customWebpackConfig when none exists', async () => { + const harness = new SchematicTestHarness(); + let tree = await harness.createWorkspace({ projects: [{ name: 'app' }] }); + + expect(tree.exists('/webpack.config.js')).toBe(false); + tree = await runNgAdd(tree); + + expect(tree.exists('/webpack.config.js')).toBe(true); + expect(tree.readText('/webpack.config.js')).toContain('module.exports'); + + const buildOptions = await optionsOf(tree, 'app', 'build'); + expect(buildOptions['customWebpackConfig']).toEqual({ path: 'webpack.config.js' }); + }); + + it('does NOT scaffold when a webpack.config.js already exists', async () => { + const harness = new SchematicTestHarness(); + let tree = await harness.createWorkspace({ projects: [{ name: 'app' }] }); + tree.create('/webpack.config.js', '// my existing config\nmodule.exports = { mine: true };'); + + tree = await runNgAdd(tree); + + expect(tree.readText('/webpack.config.js')).toContain('mine: true'); + const buildOptions = await optionsOf(tree, 'app', 'build'); + expect(buildOptions['customWebpackConfig']).toBeUndefined(); + }); + + it('does NOT scaffold when customWebpackConfig is already referenced in build options', async () => { + const harness = new SchematicTestHarness(); + let tree = await harness.createWorkspace({ projects: [{ name: 'app' }] }); + + const { updateWorkspace } = await import('@schematics/angular/utility'); + tree = (await runner() + .callRule( + updateWorkspace((ws) => { + const opts = ws.projects.get('app')!.targets.get('build')!.options!; + opts['customWebpackConfig'] = { path: 'extra-webpack.config.js' }; + }), + tree, + ) + .toPromise()) as UnitTestTree; + + tree = await runNgAdd(tree); + + expect(tree.exists('/webpack.config.js')).toBe(false); + const buildOptions = await optionsOf(tree, 'app', 'build'); + expect(buildOptions['customWebpackConfig']).toEqual({ path: 'extra-webpack.config.js' }); + }); + + it('is idempotent: build already :browser → no-op rewrite, no second scaffold', async () => { + const harness = new SchematicTestHarness(); + let tree = await harness.createWorkspace({ projects: [{ name: 'app' }] }); + + tree = await runNgAdd(tree); + const firstConfig = tree.readText('/webpack.config.js'); + + tree = await runNgAdd(tree); + + expect(await builderOf(tree, 'app', 'build')).toBe('@angular-builders/custom-webpack:browser'); + expect(await builderOf(tree, 'app', 'serve')).toBe('@angular-builders/custom-webpack:dev-server'); + expect(tree.readText('/webpack.config.js')).toBe(firstConfig); + }); + + it('targets a specific project via --project in a multi-project workspace', async () => { + const harness = new SchematicTestHarness(); + let tree = await harness.createWorkspace({ projects: [{ name: 'a' }, { name: 'b' }] }); + + tree = await runNgAdd(tree, { project: 'b' }); + + expect(await builderOf(tree, 'b', 'build')).toBe('@angular-builders/custom-webpack:browser'); + expect(await builderOf(tree, 'a', 'build')).not.toBe('@angular-builders/custom-webpack:browser'); + }); +}); diff --git a/packages/custom-webpack/src/schematics/ng-add/index.ts b/packages/custom-webpack/src/schematics/ng-add/index.ts new file mode 100644 index 0000000000..398d55dc83 --- /dev/null +++ b/packages/custom-webpack/src/schematics/ng-add/index.ts @@ -0,0 +1,102 @@ +import { + apply, + applyTemplates, + chain, + mergeWith, + move, + noop, + Rule, + SchematicContext, + Tree, + url, +} from '@angular-devkit/schematics'; +import { readWorkspace as getWorkspace, updateWorkspace } from '@schematics/angular/utility'; +import { workspaces } from '@angular-devkit/core'; +import { + addBuilderDevDependency, + getProjectsToTarget, +} from '@angular-builders/common/schematics'; +import { NgAddSchema } from './schema'; + +const PACKAGE_NAME = '@angular-builders/custom-webpack'; +const BROWSER_BUILDER = `${PACKAGE_NAME}:browser`; +const DEV_SERVER_BUILDER = `${PACKAGE_NAME}:dev-server`; +const DEFAULT_CONFIG_FILE = 'webpack.config.js'; + +const SELF_VERSION_RANGE = '^22.0.0'; + +function webpackConfigFileExists(tree: Tree): boolean { + return ( + tree.exists(`/${DEFAULT_CONFIG_FILE}`) || + tree.exists('/webpack.config.ts') || + tree.exists('/webpack.config.cjs') || + tree.exists('/webpack.config.mjs') + ); +} + +function rewriteTargets(projectName: string): Rule { + return updateWorkspace((workspace) => { + const project = workspace.projects.get(projectName); + if (!project) return; + const build = project.targets.get('build'); + if (build) build.builder = BROWSER_BUILDER; + const serve = project.targets.get('serve'); + if (serve) serve.builder = DEV_SERVER_BUILDER; + }); +} + +function scaffoldConfig(projectName: string): Rule { + return async (tree: Tree, context: SchematicContext) => { + const workspace = await getWorkspace(tree); + const project = workspace.projects.get(projectName); + const buildOptions = + (project?.targets.get('build')?.options as Record | undefined) ?? {}; + + const alreadyReferenced = + buildOptions['customWebpackConfig'] !== undefined && + buildOptions['customWebpackConfig'] !== false; + + if (alreadyReferenced || webpackConfigFileExists(tree)) { + context.logger.info('[custom-webpack] A webpack config is already present; leaving it untouched.'); + return noop(); + } + + const templateSource = apply(url('./files'), [applyTemplates({}), move('/')]); + + return chain([ + mergeWith(templateSource), + updateWorkspace((ws) => { + const buildTarget = ws.projects.get(projectName)?.targets.get('build'); + if (buildTarget) { + buildTarget.options = { + ...(buildTarget.options ?? {}), + customWebpackConfig: { path: DEFAULT_CONFIG_FILE }, + }; + } + }), + ]); + }; +} + +export function ngAdd(options: NgAddSchema): Rule { + return async (tree: Tree, context: SchematicContext) => { + const workspace = await getWorkspace(tree); + const projects = getProjectsToTarget(workspace as unknown as workspaces.WorkspaceDefinition, options.project); + + if (projects.length === 0) { + context.logger.warn('[custom-webpack] No projects found to configure.'); + return noop(); + } + + const perProject: Rule[] = []; + for (const projectName of projects) { + perProject.push(rewriteTargets(projectName)); + perProject.push(scaffoldConfig(projectName)); + } + + return chain([ + addBuilderDevDependency(PACKAGE_NAME, SELF_VERSION_RANGE, { install: true }), + ...perProject, + ]); + }; +} diff --git a/packages/custom-webpack/src/schematics/ng-add/schema.json b/packages/custom-webpack/src/schematics/ng-add/schema.json new file mode 100644 index 0000000000..4153d54231 --- /dev/null +++ b/packages/custom-webpack/src/schematics/ng-add/schema.json @@ -0,0 +1,14 @@ +{ + "$schema": "http://json-schema.org/schema", + "$id": "AngularBuildersCustomWebpackNgAdd", + "title": "Add @angular-builders/custom-webpack", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The project to wire @angular-builders/custom-webpack into.", + "$default": { "$source": "projectName" } + } + }, + "additionalProperties": false +} diff --git a/packages/custom-webpack/src/schematics/ng-add/schema.ts b/packages/custom-webpack/src/schematics/ng-add/schema.ts new file mode 100644 index 0000000000..cb7cd8a48a --- /dev/null +++ b/packages/custom-webpack/src/schematics/ng-add/schema.ts @@ -0,0 +1,3 @@ +export interface NgAddSchema { + project?: string; +} diff --git a/packages/custom-webpack/src/transform-factories.spec.ts b/packages/custom-webpack/src/transform-factories.spec.ts index aa94b4ccec..a164dbf510 100644 --- a/packages/custom-webpack/src/transform-factories.spec.ts +++ b/packages/custom-webpack/src/transform-factories.spec.ts @@ -1,51 +1,48 @@ -jest.mock('ts-node', () => ({ - register: jest.fn(), -})); -jest.mock('tsconfig-paths', () => ({ - loadConfig: jest.fn().mockReturnValue({}), -})); -import { getTransforms } from './transform-factories'; +import { Target } from '@angular-devkit/architect'; +import { loadModule } from '@angular-builders/common'; +import { getTransforms, indexHtmlTransformFactory } from './transform-factories'; -const logger = { warn: jest.fn(msg => console.log(msg)) }; +// Module loading is the responsibility of `@angular-builders/common` (covered by +// its own load-module.spec). The previous ts-node "register once / warn on a +// different tsconfig" behavior no longer exists: jiti uses an isolated instance +// per tsconfig, so there is no process-global registration to assert. These tests +// verify transform-factories' own wiring instead. +jest.mock('@angular-builders/common', () => ({ loadModule: jest.fn() })); -describe('getTransforms', () => { +const mockedLoadModule = loadModule as jest.MockedFunction; +const logger = { warn: jest.fn(), info: jest.fn() } as any; + +describe('transform factories', () => { beforeEach(() => { - jest.resetModules(); jest.clearAllMocks(); }); - it('should call ts-node register once with typescript index-html-transform & custom-webpack-config AND warn if called with a different config', () => { - jest.mock('test/index-transform.test.ts', () => jest.fn(), { virtual: true }); - jest.mock('test/webpack.test.config.ts', () => jest.fn(), { virtual: true }); - const tsNode = require('ts-node') as jest.Mocked; - - const transforms = getTransforms( - { - customWebpackConfig: { - path: 'webpack.test.config.ts', - }, - indexTransform: 'index-transform.test.ts', - tsConfig: 'tsconfig.test.json', - }, - { workspaceRoot: './test', logger } as any + it('produces a null indexHtml transform when no indexTransform is configured', () => { + const { indexHtml } = getTransforms( + { customWebpackConfig: { path: 'webpack.config.ts' }, tsConfig: 'tsconfig.json' } as any, + { workspaceRoot: '/root', target: {} as Target, logger } as any ); - transforms.webpackConfiguration({}); - - expect(tsNode.register).toHaveBeenCalledTimes(1); - expect(logger.warn).not.toHaveBeenCalled(); - - const transforms2 = getTransforms( - { - customWebpackConfig: { - path: 'webpack.test.config.ts', - }, - indexTransform: '', - tsConfig: 'tsconfig.test2.json', - }, - { workspaceRoot: './test', logger } as any + + expect(indexHtml).toBeNull(); + }); + + it('loads the index transform via loadModule and passes the target', async () => { + const transformer = jest.fn().mockResolvedValue('transformed'); + mockedLoadModule.mockResolvedValue(transformer as never); + const target = { project: 'app', target: 'build' } as Target; + + const indexHtml = indexHtmlTransformFactory( + { indexTransform: 'index.transform.ts', tsConfig: 'tsconfig.json' } as any, + { workspaceRoot: '/root', target, logger } as any ); - transforms2.webpackConfiguration({}); - expect(logger.warn).toHaveBeenCalledTimes(1); + const result = await indexHtml!(''); + + expect(mockedLoadModule).toHaveBeenCalledTimes(1); + const [transformPath, tsConfigPath] = mockedLoadModule.mock.calls[0]; + expect(transformPath).toContain('index.transform.ts'); + expect(tsConfigPath).toContain('tsconfig.json'); + expect(transformer).toHaveBeenCalledWith(target, ''); + expect(result).toBe('transformed'); }); }); diff --git a/packages/custom-webpack/tests/e2e/webpack-add.ng-add.json b/packages/custom-webpack/tests/e2e/webpack-add.ng-add.json new file mode 100644 index 0000000000..54c230d9e1 --- /dev/null +++ b/packages/custom-webpack/tests/e2e/webpack-add.ng-add.json @@ -0,0 +1,18 @@ +{ + "generate": { + "name": "add-app", + "args": ["--routing=false", "--style=scss"] + }, + "prepareWorkdir": [ + "node -e \"const fs=require('fs'),f='angular.json',j=JSON.parse(fs.readFileSync(f)),a=j.projects['add-app'].architect;a.build={builder:'@angular-devkit/build-angular:browser',options:{outputPath:'dist/add-app',index:'src/index.html',main:'src/main.ts',tsConfig:'tsconfig.app.json',polyfills:[],assets:[],styles:['src/styles.scss']}};a.serve={builder:'@angular-devkit/build-angular:dev-server',options:{buildTarget:'add-app:build'}};fs.writeFileSync(f,JSON.stringify(j,null,2));\"" + ], + "package": "@angular-builders/custom-webpack", + "ngAddArgs": [], + "asserts": [ + { "fn": "assertBuilderForTarget", "args": ["add-app", "build", "@angular-builders/custom-webpack:browser"] }, + { "fn": "assertBuilderForTarget", "args": ["add-app", "serve", "@angular-builders/custom-webpack:dev-server"] }, + { "fn": "assertFileContains", "args": ["webpack.config.js", "module.exports"] }, + { "fn": "assertDevDependency", "args": ["@angular-builders/custom-webpack"] } + ], + "post": ["npx ng build"] +} diff --git a/packages/custom-webpack/tests/integration.js b/packages/custom-webpack/tests/integration.js index af68191440..69defa9d3c 100644 --- a/packages/custom-webpack/tests/integration.js +++ b/packages/custom-webpack/tests/integration.js @@ -1,4 +1,24 @@ module.exports = [ + // --- ng add e2e (Plan 04): real CLI ng add on an inline-generated webpack-shaped app --- + { + id: 'ng-add-webpack-rewrite-scaffold', + name: 'custom-webpack: ng add rewrite + scaffold', + purpose: 'ng add rewrites build/serve and scaffolds webpack.config.js; ng build green', + app: '.', + command: + 'node scripts/e2e-ng-add.js --spec packages/custom-webpack/tests/e2e/webpack-add.ng-add.json', + }, + + // --- ng update e2e: ts-node -> jiti loader migration (real CLI) + post-migration build --- + { + id: 'ng-update-loader-migration-smoke', + name: 'custom-webpack: jiti loader migration post-build smoke', + purpose: + 'v22 ng update strips the NODE_OPTIONS ts-node/esm workaround, lifts a ts-node tsconfig section, and removes ts-node deps; ng build is green with a .ts webpack config loaded via jiti', + app: '.', + command: 'node scripts/e2e-loader-migration.js', + }, + // Karma builder tests { id: 'karma-builder-sanity-app', @@ -103,7 +123,7 @@ module.exports = [ name: 'custom-webpack: TS config ESM imports', purpose: 'Builder loads TypeScript config with ESM imports', app: 'examples/custom-webpack/sanity-app-esm', - command: 'yarn build-ts -c tsEsm', + command: 'yarn build -c tsEsm', }, { id: 'ts-config-bundler-module-resolution', diff --git a/packages/custom-webpack/tsconfig.json b/packages/custom-webpack/tsconfig.json index aa1efcb5da..1d3117a439 100644 --- a/packages/custom-webpack/tsconfig.json +++ b/packages/custom-webpack/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "dist" + "outDir": "dist", + "rootDir": "src" }, "files": [ "src/index.ts" diff --git a/packages/custom-webpack/tsconfig.schematics.json b/packages/custom-webpack/tsconfig.schematics.json new file mode 100644 index 0000000000..e4f56b977a --- /dev/null +++ b/packages/custom-webpack/tsconfig.schematics.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.schematics.json", + "compilerOptions": { + "rootDir": "src/schematics", + "outDir": "dist/schematics" + }, + "include": ["src/schematics/**/*.ts"], + "exclude": ["node_modules", "**/*.spec.ts", "**/files/**"] +} diff --git a/packages/jest/README.md b/packages/jest/README.md index 30eab2ca2e..ff3ef9874b 100644 --- a/packages/jest/README.md +++ b/packages/jest/README.md @@ -14,6 +14,7 @@ The builder comes to provide zero configuration setup for Jest while keeping the
Click to expand +- [Version 21](https://github.com/just-jeb/angular-builders/blob/21.x.x/packages/jest/README.md) - [Version 20](https://github.com/just-jeb/angular-builders/blob/20.x.x/packages/jest/README.md) - [Version 19](https://github.com/just-jeb/angular-builders/blob/19.x.x/packages/jest/README.md) - [Version 18](https://github.com/just-jeb/angular-builders/blob/18.x.x/packages/jest/README.md) @@ -35,7 +36,7 @@ The builder comes to provide zero configuration setup for Jest while keeping the ## Prerequisites -- [Angular CLI 21](https://www.npmjs.com/package/@angular/cli) +- [Angular CLI 22](https://www.npmjs.com/package/@angular/cli) - [Jest 30](https://www.npmjs.com/package/jest) ## Installation diff --git a/packages/jest/package.json b/packages/jest/package.json index 83c54cacde..cdbde22e0a 100644 --- a/packages/jest/package.json +++ b/packages/jest/package.json @@ -30,9 +30,17 @@ "runner" ], "builders": "builders.json", + "schematics": "./dist/schematics/collection.json", + "ng-add": { + "save": "devDependencies" + }, + "ng-update": { + "migrations": "./dist/schematics/migrations.json" + }, "scripts": { "prebuild": "yarn clean && yarn generate", - "build": "yarn prebuild && tsc -p tsconfig.lib.json && yarn postbuild", + "build": "yarn prebuild && tsc -p tsconfig.lib.json && tsc -p tsconfig.schematics.json && yarn copy:schematics && yarn postbuild", + "copy:schematics": "copyfiles -u 2 \"src/schematics/**/*.json\" dist/schematics && copyfiles -u 2 \"src/schematics/**/files/**\" dist/schematics", "postbuild": "yarn copy && yarn test", "test": "jest --config ../../jest-ut.config.js", "e2e": "jest --config ../../jest-e2e.config.js", @@ -42,25 +50,28 @@ }, "dependencies": { "@angular-builders/common": "workspace:*", - "@angular-devkit/architect": ">=0.2100.0 < 0.2200.0", - "@angular-devkit/core": "^21.0.0", + "@angular-devkit/architect": ">=0.2200.0 < 0.2300.0", + "@angular-devkit/core": "^22.0.0", + "@angular-devkit/schematics": "^22.0.0", + "@schematics/angular": "^22.0.0", "jest-preset-angular": "^16.0.0", "lodash": "^4.17.15" }, "peerDependencies": { - "@angular-devkit/build-angular": "^21.0.0", - "@angular/compiler-cli": "^21.0.0", - "@angular/core": "^21.0.0", - "@angular/platform-browser-dynamic": "^21.0.0", + "@angular-devkit/build-angular": "^22.0.0", + "@angular/compiler-cli": "^22.0.0", + "@angular/core": "^22.0.0", + "@angular/platform-browser-dynamic": "^22.0.0", "jest": "^30.0.0", "rxjs": ">=7.0.0" }, "devDependencies": { "@types/jest": "^30.0.0", + "copyfiles": "^2.4.1", "cpy-cli": "^7.0.0", "jest": "30.4.2", "quicktype": "^15.0.260", "rimraf": "^6.0.0", - "typescript": "5.9.3" + "typescript": "6.0.3" } } diff --git a/packages/jest/src/custom-config.resolver.spec.ts b/packages/jest/src/custom-config.resolver.spec.ts index 56da64ab67..dfcd8be12e 100644 --- a/packages/jest/src/custom-config.resolver.spec.ts +++ b/packages/jest/src/custom-config.resolver.spec.ts @@ -1,12 +1,21 @@ // Should be defined before any import due to the hoisting const existsSyncMock = jest.fn(); -import { getSystemPath, normalize } from '@angular-devkit/core'; +import { normalize } from '@angular-devkit/core'; // TODO: find a way to mock 'fs' only for custom-config.resolver jest.mock('fs', () => ({ existsSync: existsSyncMock })); +import { loadModule } from '@angular-builders/common'; + import { CustomConfigResolver } from './custom-config.resolver'; +// `jest.config.{js,ts}` files are loaded through `@angular-builders/common`'s +// `loadModule` (covered by its own load-module.spec). Mock it here so these tests +// exercise the resolver's own logic. `package.json` configs use `require` directly +// and are still mocked via the virtual module registry below. +jest.mock('@angular-builders/common', () => ({ loadModule: jest.fn() })); + +const mockedLoadModule = loadModule as jest.MockedFunction; const jestConfig = { blah: true }; const mockLogger = { warn: jest.fn() }; const customConfigResolver = new CustomConfigResolver({}, mockLogger); @@ -24,7 +33,7 @@ describe('Resolve global custom config', () => { it('Should return jest configuration from workspace jest.config.js if exists and no configuration provided in package.json', async () => { jest.mock('package.json', () => ({}), { virtual: true }); - jest.mock('jest.config.js', () => jestConfig, { virtual: true }); + mockedLoadModule.mockResolvedValue(jestConfig as never); existsSyncMock.mockReturnValue(true); const customConfig = await customConfigResolver.resolveGlobal(normalize('./')); expect(customConfig).toEqual(jestConfig); @@ -45,9 +54,7 @@ describe('Resolve project custom config', () => { }); it('Should return jest configuration from project jest.config.js if exists', async () => { - jest.mock(getSystemPath(normalize('./myproject/project-jest.config.js')), () => jestConfig, { - virtual: true, - }); + mockedLoadModule.mockResolvedValue(jestConfig as never); existsSyncMock.mockReturnValue(true); const customConfig = await customConfigResolver.resolveForProject( normalize('./myproject'), diff --git a/packages/jest/src/default-config.resolver.spec.ts b/packages/jest/src/default-config.resolver.spec.ts index 2235f8f3db..8c2ef385ad 100644 --- a/packages/jest/src/default-config.resolver.spec.ts +++ b/packages/jest/src/default-config.resolver.spec.ts @@ -9,13 +9,10 @@ const defaultConfigResolver = new DefaultConfigResolver({}); describe('Resolve project default configuration', () => { it('Should resolve tsconfig relatively to project root', () => { const config = defaultConfigResolver.resolveForProject(normalize('/some/cool/directory')); - expect(config.transform[defaultConfigResolver.tsJestTransformRegExp]).toEqual([ - 'jest-preset-angular', - { - stringifyContentPathRegex: '\\.(html|svg)$', - tsconfig: getSystemPath(normalize(`/some/cool/directory/${tsConfigName}`)), - }, - ]); + const [, transformOptions] = config.transform[defaultConfigResolver.tsJestTransformRegExp]; + expect(transformOptions.tsconfig).toEqual( + getSystemPath(normalize(`/some/cool/directory/${tsConfigName}`)) + ); }); it('Should resolve path to the tsconfig if "tsConfig" is provided', () => { @@ -23,13 +20,10 @@ describe('Resolve project default configuration', () => { tsConfig: './ts-configs/tsconfig.spec.json', }); const config = defaultConfigResolver.resolveForProject(normalize('/some/cool/project')); - expect(config.transform[defaultConfigResolver.tsJestTransformRegExp]).toEqual([ - 'jest-preset-angular', - { - stringifyContentPathRegex: '\\.(html|svg)$', - tsconfig: getSystemPath(normalize(`/some/cool/project/ts-configs/tsconfig.spec.json`)), - }, - ]); + const [, transformOptions] = config.transform[defaultConfigResolver.tsJestTransformRegExp]; + expect(transformOptions.tsconfig).toEqual( + getSystemPath(normalize(`/some/cool/project/ts-configs/tsconfig.spec.json`)) + ); }); it('Should resolve testMatch pattern relatively to project root', () => { diff --git a/packages/jest/src/default-config.resolver.ts b/packages/jest/src/default-config.resolver.ts index f9d950c19e..a3a4df00ff 100644 --- a/packages/jest/src/default-config.resolver.ts +++ b/packages/jest/src/default-config.resolver.ts @@ -1,5 +1,6 @@ import { pick } from 'lodash'; import { getSystemPath, normalize, Path } from '@angular-devkit/core'; +import * as path from 'node:path'; import { JestConfig } from './types'; import { getTsConfigPath } from './utils'; @@ -39,6 +40,9 @@ export class DefaultConfigResolver { resolveForProject(projectRoot: Path): JestConfig { return { testMatch: [`${getSystemPath(projectRoot)}${testPattern}`], + // Scope coverage output to the project directory so that multiple projects + // in a workspace don't overwrite each other's coverage reports. See #1009. + coverageDirectory: path.join(getSystemPath(projectRoot), 'coverage'), transform: { [this.tsJestTransformRegExp]: [ 'jest-preset-angular', @@ -47,6 +51,16 @@ export class DefaultConfigResolver { stringifyContentPathRegex: '\\.(html|svg)$', // Join with the default `tsConfigName` if the `tsConfig` option is not provided tsconfig: getTsConfigPath(projectRoot, this.options), + // Default to isolatedModules: true for significantly faster compilation. + // With isolatedModules: false (the previous implicit default), ts-jest uses the + // TypeScript language service to build a full cross-file Program for every test + // file, which becomes extremely slow with Angular 19+ code (signals, new control + // flow, standalone-by-default). Angular 19+ users report 2min → 15min regressions. + // Cross-file type checking is better handled by `tsc --noEmit` or `ng build`. + // Users who need the old behaviour can opt out via their jest.config.ts: + // transform: { '...': ['jest-preset-angular', { isolatedModules: false }] } + // BREAKING CHANGE: targeted for the next major version. + isolatedModules: true, }, ], }, diff --git a/packages/jest/src/schematics/collection.json b/packages/jest/src/schematics/collection.json new file mode 100644 index 0000000000..2baa881886 --- /dev/null +++ b/packages/jest/src/schematics/collection.json @@ -0,0 +1,10 @@ +{ + "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json", + "schematics": { + "ng-add": { + "description": "Set up @angular-builders/jest as the ng test runner.", + "factory": "./ng-add/index#ngAdd", + "schema": "./ng-add/schema.json" + } + } +} diff --git a/packages/jest/src/schematics/index.ts b/packages/jest/src/schematics/index.ts new file mode 100644 index 0000000000..cb0ff5c3b5 --- /dev/null +++ b/packages/jest/src/schematics/index.ts @@ -0,0 +1 @@ +export {}; diff --git a/packages/jest/src/schematics/migrations.json b/packages/jest/src/schematics/migrations.json new file mode 100644 index 0000000000..f1c0ca3f5b --- /dev/null +++ b/packages/jest/src/schematics/migrations.json @@ -0,0 +1,15 @@ +{ + "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json", + "schematics": { + "migration-v21": { + "version": "21.0.0", + "description": "Migrate jest builder config for v21: bump deps, Node16 tsconfig, rename builder options, strip removed mocks/options, set zoneless by detection.", + "factory": "./migrations/v21/index#migrateV21" + }, + "migration-v22": { + "version": "22.0.0", + "description": "Advise on v22 jest breaking changes (isolatedModules default, per-project coverage path). Advisory only — no file changes.", + "factory": "./migrations/v22/index#migrateV22" + } + } +} diff --git a/packages/jest/src/schematics/migrations/v21/index.spec.ts b/packages/jest/src/schematics/migrations/v21/index.spec.ts new file mode 100644 index 0000000000..79fdfa3c7d --- /dev/null +++ b/packages/jest/src/schematics/migrations/v21/index.spec.ts @@ -0,0 +1,244 @@ +import { logging } from '@angular-devkit/core'; +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; +import { readWorkspace, updateWorkspace } from '@schematics/angular/utility'; +import { SchematicTestHarness } from '@angular-builders/common/schematics/testing'; + +const COLLECTION = require.resolve('../../../../src/schematics/migrations.json'); + +function runner(): SchematicTestRunner { + return new SchematicTestRunner('jest-migrations', COLLECTION); +} + +async function seed(): Promise { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const pkg = JSON.parse(tree.readText('/package.json')); + pkg.devDependencies = { + ...(pkg.devDependencies ?? {}), + jest: '^29.0.0', + 'jest-environment-jsdom': '^29.0.0', + jsdom: '^24.0.0', + }; + tree.overwrite('/package.json', JSON.stringify(pkg, null, 2)); + tree.create( + '/tsconfig.spec.json', + JSON.stringify({ compilerOptions: { module: 'esnext', types: ['jest'] } }, null, 2), + ); + return tree; +} + +describe('jest @21 migration — deps + tsconfig', () => { + it('bumps jest/jest-environment-jsdom/jsdom to 30/30/26', async () => { + const out = (await runner().runSchematic('migration-v21', {}, await seed())) as UnitTestTree; + const pkg = JSON.parse(out.readText('/package.json')); + expect(pkg.devDependencies.jest).toBe('^30.0.0'); + expect(pkg.devDependencies['jest-environment-jsdom']).toBe('^30.0.0'); + expect(pkg.devDependencies.jsdom).toBe('^26.0.0'); + }); + + it('patches tsconfig.spec.json to Node16 + isolatedModules', async () => { + const out = (await runner().runSchematic('migration-v21', {}, await seed())) as UnitTestTree; + const cfg = JSON.parse(out.readText('/tsconfig.spec.json')); + expect(cfg.compilerOptions.module).toBe('Node16'); + expect(cfg.compilerOptions.moduleResolution).toBe('Node16'); + expect(cfg.compilerOptions.isolatedModules).toBe(true); + }); +}); + +describe('jest @21 migration — builder option renames', () => { + async function seedWithTestOptions(options: Record): Promise { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await runner() + .callRule( + updateWorkspace((ws) => { + ws.projects.get('app')!.targets.set('test', { + builder: '@angular-builders/jest:run', + options, + }); + }), + tree, + ) + .forEach((t) => (tree = t as UnitTestTree)); + return tree; + } + + it('renames configPath → config', async () => { + const tree = await seedWithTestOptions({ configPath: 'jest.config.js' }); + const out = (await runner().runSchematic('migration-v21', {}, tree)) as UnitTestTree; + const ws = await readWorkspace(out); + const opts = ws.projects.get('app')!.targets.get('test')!.options as Record; + expect(opts['config']).toBe('jest.config.js'); + expect(opts['configPath']).toBeUndefined(); + }); + + it('renames testPathPattern → testPathPatterns and wraps the string in an array', async () => { + const tree = await seedWithTestOptions({ testPathPattern: 'foo' }); + const out = (await runner().runSchematic('migration-v21', {}, tree)) as UnitTestTree; + const ws = await readWorkspace(out); + const opts = ws.projects.get('app')!.targets.get('test')!.options as Record; + // Jest 30's testPathPatterns is a string array, not the old single-string testPathPattern. + expect(opts['testPathPatterns']).toEqual(['foo']); + expect(opts['testPathPattern']).toBeUndefined(); + }); +}); + +describe('jest @21 migration — strip removed mocks/options', () => { + async function seedWithTestOptions(options: Record): Promise { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await runner() + .callRule( + updateWorkspace((ws) => { + ws.projects.get('app')!.targets.set('test', { + builder: '@angular-builders/jest:run', + options, + }); + }), + tree, + ) + .forEach((t) => (tree = t as UnitTestTree)); + return tree; + } + + it('strips removed globalMocks values, keeping supported ones', async () => { + const tree = await seedWithTestOptions({ + globalMocks: ['matchMedia', 'styleTransform', 'getComputedStyle', 'doctype'], + }); + const out = (await runner().runSchematic('migration-v21', {}, tree)) as UnitTestTree; + const ws = await readWorkspace(out); + const opts = ws.projects.get('app')!.targets.get('test')!.options as Record; + expect(opts['globalMocks']).toEqual(['matchMedia']); + }); + + it('strips removed jest options', async () => { + const tree = await seedWithTestOptions({ + browser: true, + init: true, + mapCoverage: true, + testURL: 'http://localhost', + timers: 'fake', + ci: true, + }); + const out = (await runner().runSchematic('migration-v21', {}, tree)) as UnitTestTree; + const ws = await readWorkspace(out); + const opts = ws.projects.get('app')!.targets.get('test')!.options as Record; + for (const removed of ['browser', 'init', 'mapCoverage', 'testURL', 'timers']) { + expect(opts[removed]).toBeUndefined(); + } + expect(opts['ci']).toBe(true); + }); +}); + +describe('jest @21 migration — zoneless detection + advisories', () => { + it('zone-based workspace → sets zoneless:false', async () => { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await runner() + .callRule( + updateWorkspace((ws) => { + const build = ws.projects.get('app')!.targets.get('build')!; + build.options = { ...(build.options ?? {}), polyfills: ['zone.js'] }; + ws.projects.get('app')!.targets.set('test', { + builder: '@angular-builders/jest:run', + options: {}, + }); + }), + tree, + ) + .forEach((t) => (tree = t as UnitTestTree)); + + const out = (await runner().runSchematic('migration-v21', {}, tree)) as UnitTestTree; + const ws = await readWorkspace(out); + const opts = ws.projects.get('app')!.targets.get('test')!.options as Record; + expect(opts['zoneless']).toBe(false); + }); + + it('zoneless workspace → leaves zoneless unset (default true)', async () => { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await runner() + .callRule( + updateWorkspace((ws) => { + ws.projects.get('app')!.targets.set('test', { + builder: '@angular-builders/jest:run', + options: {}, + }); + }), + tree, + ) + .forEach((t) => (tree = t as UnitTestTree)); + + const out = (await runner().runSchematic('migration-v21', {}, tree)) as UnitTestTree; + const ws = await readWorkspace(out); + const opts = ws.projects.get('app')!.targets.get('test')!.options as Record; + expect(opts['zoneless']).toBeUndefined(); + }); + + it('emits Node16 and removed-mocks advisories', async () => { + const messages: string[] = []; + const r = new SchematicTestRunner('jest-migrations', COLLECTION); + r.logger.subscribe((e: logging.LogEntry) => messages.push(e.message)); + + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await r.runSchematic('migration-v21', {}, tree); + + const joined = messages.join('\n'); + expect(joined).toMatch(/Node16/); + expect(joined).toMatch(/mock/i); + }); +}); + +describe('jest @21 migration — idempotency', () => { + async function seedFull(): Promise { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const pkg = JSON.parse(tree.readText('/package.json')); + pkg.devDependencies = { ...(pkg.devDependencies ?? {}), jest: '^29.0.0', jsdom: '^24.0.0' }; + tree.overwrite('/package.json', JSON.stringify(pkg, null, 2)); + tree.create( + '/tsconfig.spec.json', + JSON.stringify({ compilerOptions: { module: 'esnext', types: ['jest'] } }, null, 2), + ); + await runner() + .callRule( + updateWorkspace((ws) => { + const build = ws.projects.get('app')!.targets.get('build')!; + build.options = { ...(build.options ?? {}), polyfills: ['zone.js'] }; + ws.projects.get('app')!.targets.set('test', { + builder: '@angular-builders/jest:run', + options: { + configPath: 'jest.config.js', + testPathPattern: 'foo', + globalMocks: ['matchMedia', 'doctype'], + browser: true, + }, + }); + }), + tree, + ) + .forEach((t) => (tree = t as UnitTestTree)); + return tree; + } + + it('run twice == run once', async () => { + const once = (await runner().runSchematic('migration-v21', {}, await seedFull())) as UnitTestTree; + const twice = (await runner().runSchematic('migration-v21', {}, once)) as UnitTestTree; + + const wsOnce = await readWorkspace(once); + const wsTwice = await readWorkspace(twice); + const optsOnce = wsOnce.projects.get('app')!.targets.get('test')!.options as Record; + const optsTwice = wsTwice.projects.get('app')!.targets.get('test')!.options as Record; + expect(optsTwice).toEqual(optsOnce); + + const pkgOnce = JSON.parse(once.readText('/package.json')); + const pkgTwice = JSON.parse(twice.readText('/package.json')); + expect(pkgTwice.devDependencies).toEqual(pkgOnce.devDependencies); + + const cfgOnce = JSON.parse(once.readText('/tsconfig.spec.json')); + const cfgTwice = JSON.parse(twice.readText('/tsconfig.spec.json')); + expect(cfgTwice).toEqual(cfgOnce); + + expect(optsTwice['config']).toBe('jest.config.js'); + expect(optsTwice['configPath']).toBeUndefined(); + expect(optsTwice['testPathPatterns']).toEqual(['foo']); + expect(optsTwice['globalMocks']).toEqual(['matchMedia']); + expect(optsTwice['browser']).toBeUndefined(); + expect(optsTwice['zoneless']).toBe(false); + expect(pkgTwice.devDependencies.jest).toBe('^30.0.0'); + }); +}); diff --git a/packages/jest/src/schematics/migrations/v21/index.ts b/packages/jest/src/schematics/migrations/v21/index.ts new file mode 100644 index 0000000000..6e3cbdf420 --- /dev/null +++ b/packages/jest/src/schematics/migrations/v21/index.ts @@ -0,0 +1,124 @@ +import { chain, Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; +import { JsonValue, workspaces } from '@angular-devkit/core'; +import { readWorkspace, updateWorkspace } from '@schematics/angular/utility'; +import { JSONFile } from '@schematics/angular/utility/json-file'; +import { editJsonFile, isZoneless } from '@angular-builders/common/schematics'; + +const DEP_BUMPS: Record = { + jest: '^30.0.0', + 'jest-environment-jsdom': '^30.0.0', + jsdom: '^26.0.0', +}; + +function bumpDeps(): Rule { + return (tree: Tree) => { + if (!tree.exists('/package.json')) return tree; + const json = new JSONFile(tree, '/package.json'); + for (const [name, version] of Object.entries(DEP_BUMPS)) { + if (json.get(['devDependencies', name]) !== undefined) { + json.modify(['devDependencies', name], version); + } + if (json.get(['dependencies', name]) !== undefined) { + json.modify(['dependencies', name], version); + } + } + return tree; + }; +} + +function patchSpecTsconfig(): Rule { + return editJsonFile('/tsconfig.spec.json', (json: JSONFile) => { + json.modify(['compilerOptions', 'module'], 'Node16'); + json.modify(['compilerOptions', 'moduleResolution'], 'Node16'); + json.modify(['compilerOptions', 'isolatedModules'], true); + }); +} + +const OPTION_RENAMES: Record = { + configPath: 'config', + testPathPattern: 'testPathPatterns', +}; + +function renameBuilderOptions(): Rule { + return updateWorkspace((workspace) => { + for (const project of workspace.projects.values()) { + const test = project.targets.get('test'); + if (!test || test.builder !== '@angular-builders/jest:run') continue; + const options = (test.options ?? {}) as Record; + for (const [from, to] of Object.entries(OPTION_RENAMES)) { + if (from in options) { + if (!(to in options)) options[to] = options[from]; + delete options[from]; + } + } + // Jest 30 renamed the single-string `testPathPattern` to the array-valued + // `testPathPatterns`. Wrap a carried-over string value so it matches the schema. + if (typeof options['testPathPatterns'] === 'string') { + options['testPathPatterns'] = [options['testPathPatterns']]; + } + test.options = options as unknown as Record; + } + }); +} + +const REMOVED_GLOBAL_MOCKS = ['styleTransform', 'getComputedStyle', 'doctype']; +const REMOVED_JEST_OPTIONS = ['browser', 'init', 'mapCoverage', 'testURL', 'timers']; + +function stripRemovedOptions(): Rule { + return updateWorkspace((workspace) => { + for (const project of workspace.projects.values()) { + const test = project.targets.get('test'); + if (!test || test.builder !== '@angular-builders/jest:run') continue; + const options = (test.options ?? {}) as Record; + + if (Array.isArray(options['globalMocks'])) { + options['globalMocks'] = (options['globalMocks'] as unknown[]).filter( + (v) => !REMOVED_GLOBAL_MOCKS.includes(v as string), + ); + } + for (const removed of REMOVED_JEST_OPTIONS) { + if (removed in options) delete options[removed]; + } + test.options = options as unknown as Record; + } + }); +} + +function setZonelessByDetection(): Rule { + return async (tree: Tree) => { + const workspace = await readWorkspace(tree); + return updateWorkspace((ws) => { + for (const [name, project] of ws.projects) { + const test = project.targets.get('test'); + if (!test || test.builder !== '@angular-builders/jest:run') continue; + if (!isZoneless(tree, workspace as unknown as workspaces.WorkspaceDefinition, name)) { + const options = (test.options ?? {}) as Record; + options['zoneless'] = false; + test.options = options as unknown as Record; + } + } + }); + }; +} + +export function migrateV21(): Rule { + return (_tree: Tree, context: SchematicContext) => { + context.logger.warn( + '[@angular-builders/jest] v21 migration applied. Note: tsconfig.spec.json now uses ' + + 'module/moduleResolution "Node16", which may surface pre-existing type errors in your ' + + 'spec code — fix the reported type issues.', + ); + context.logger.warn( + '[@angular-builders/jest] Removed globalMocks (styleTransform, getComputedStyle, doctype) ' + + 'were stripped from your config; if your tests relied on them, replace them manually. ' + + 'See MIGRATION.MD (v20→v21) for details.', + ); + return chain([ + bumpDeps(), + patchSpecTsconfig(), + renameBuilderOptions(), + stripRemovedOptions(), + setZonelessByDetection(), + ]); + }; +} diff --git a/packages/jest/src/schematics/migrations/v22/index.spec.ts b/packages/jest/src/schematics/migrations/v22/index.spec.ts new file mode 100644 index 0000000000..2a67a613c6 --- /dev/null +++ b/packages/jest/src/schematics/migrations/v22/index.spec.ts @@ -0,0 +1,66 @@ +import { logging } from '@angular-devkit/core'; +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; +import { updateWorkspace } from '@schematics/angular/utility'; +import { SchematicTestHarness } from '@angular-builders/common/schematics/testing'; + +const COLLECTION = require.resolve('../../../../src/schematics/migrations.json'); + +function makeRunner(): { runner: SchematicTestRunner; messages: string[] } { + const runner = new SchematicTestRunner('jest-migrations', COLLECTION); + const messages: string[] = []; + runner.logger.subscribe((e: logging.LogEntry) => messages.push(e.message)); + return { runner, messages }; +} + +function snapshot(tree: UnitTestTree): Record { + const out: Record = {}; + tree.visit((path) => { + try { + out[path] = tree.readText(path); + } catch { + // skip binary files (e.g. favicon.ico) + out[path] = ''; + } + }); + return out; +} + +describe('jest @22 migration — advisory only', () => { + it('warns about isolatedModules default flip (#2191)', async () => { + const { runner, messages } = makeRunner(); + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await runner.runSchematic('migration-v22', {}, tree); + expect(messages.join('\n')).toMatch(/isolatedModules/); + }); + + it('warns about per-project coverage path when projectRoot !== workspaceRoot (#2212)', async () => { + const { runner, messages } = makeRunner(); + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await runner.runSchematic('migration-v22', {}, tree); + expect(messages.join('\n')).toMatch(/coverage/i); + }); + + it('does NOT warn about coverage when projectRoot === workspaceRoot', async () => { + const { runner, messages } = makeRunner(); + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await runner + .callRule( + updateWorkspace((ws) => { + (ws.projects.get('app') as { root: string }).root = ''; + }), + tree, + ) + .forEach((t) => (tree = t as UnitTestTree)); + await runner.runSchematic('migration-v22', {}, tree); + expect(messages.join('\n')).not.toMatch(/coverage/i); + }); + + it('mutates no files', async () => { + const { runner } = makeRunner(); + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const before = snapshot(tree); + const out = (await runner.runSchematic('migration-v22', {}, tree)) as UnitTestTree; + const after = snapshot(out); + expect(after).toEqual(before); + }); +}); diff --git a/packages/jest/src/schematics/migrations/v22/index.ts b/packages/jest/src/schematics/migrations/v22/index.ts new file mode 100644 index 0000000000..1d2a7597fe --- /dev/null +++ b/packages/jest/src/schematics/migrations/v22/index.ts @@ -0,0 +1,51 @@ +import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; +import { readWorkspace } from '@schematics/angular/utility'; + +export function migrateV22(): Rule { + return async (tree: Tree, context: SchematicContext) => { + context.logger.warn( + '[@angular-builders/jest] v22: ts-jest `isolatedModules` now defaults to true. ' + + '`const enum` used across files and type-only re-exports without the `type` modifier ' + + 'will now error. Fix the call sites, or restore `isolatedModules: false` in your jest ' + + 'config. We do not change this automatically — the new default is intentional. ' + + 'See MIGRATION.MD (v21→v22) and #2191.' + ); + + context.logger.warn( + '[@angular-builders/jest] v22: a TypeScript jest config (e.g. `jest.config.ts`) is now ' + + 'loaded via jiti instead of ts-node. `ts-node` is no longer required just to read the ' + + 'config, and the config is no longer type-checked when loaded. No action needed unless ' + + 'you relied on that load-time type check.' + ); + + const constEnumHits: string[] = []; + tree.visit(path => { + if (!path.endsWith('.ts')) return; + if (path.includes('/node_modules/') || path.includes('/dist/')) return; + const content = tree.readText(path); + if (/\bconst\s+enum\b/.test(content)) constEnumHits.push(path); + }); + if (constEnumHits.length > 0) { + context.logger.warn( + '[@angular-builders/jest] Found `const enum` in: ' + + constEnumHits.join(', ') + + ' — these may break under isolatedModules. Convert to a regular `enum` or `as const`.' + ); + } + + const workspace = await readWorkspace(tree); + const affected = [...workspace.projects.entries()] + .filter(([, project]) => (project.root ?? '') !== '') + .map(([name]) => name); + if (affected.length > 0) { + context.logger.warn( + '[@angular-builders/jest] v22: per-project coverage output now writes to ' + + '/coverage instead of ./coverage for projects: ' + + affected.join(', ') + + '. Update any CI/tooling that reads a hardcoded `./coverage/` path. See #2212.' + ); + } + + return tree; + }; +} diff --git a/packages/jest/src/schematics/ng-add/index.spec.ts b/packages/jest/src/schematics/ng-add/index.spec.ts new file mode 100644 index 0000000000..63fee2300c --- /dev/null +++ b/packages/jest/src/schematics/ng-add/index.spec.ts @@ -0,0 +1,258 @@ +import { SchematicTestRunner, UnitTestTree } from '@angular-devkit/schematics/testing'; +import { readWorkspace, updateWorkspace } from '@schematics/angular/utility'; +import { logging } from '@angular-devkit/core'; +import { SchematicTestHarness } from '@angular-builders/common/schematics/testing'; + +const COLLECTION = require.resolve('../../../src/schematics/collection.json'); + +function runner(): SchematicTestRunner { + return new SchematicTestRunner('jest', COLLECTION); +} + +describe('jest ng-add (no Karma)', () => { + it('adds the jest stack to devDependencies and schedules install', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const r = runner(); + const out = (await r.runSchematic('ng-add', {}, tree)) as UnitTestTree; + + const pkg = JSON.parse(out.readText('/package.json')); + expect(pkg.devDependencies['@angular-builders/jest']).toBeDefined(); + expect(pkg.devDependencies['jest']).toBeDefined(); + expect(pkg.devDependencies['jest-preset-angular']).toBeDefined(); + expect(pkg.devDependencies['jest-environment-jsdom']).toBeDefined(); + expect(r.tasks.length).toBeGreaterThan(0); + }); + + it('rewrites the test target to @angular-builders/jest:run', async () => { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await runner() + .callRule( + updateWorkspace((ws) => { + ws.projects.get('app')!.targets.set('test', { + builder: '@angular-devkit/build-angular:karma', + options: {}, + }); + }), + tree, + ) + .forEach((t) => (tree = t as UnitTestTree)); + + const out = (await runner().runSchematic('ng-add', {}, tree)) as UnitTestTree; + const ws = await readWorkspace(out); + expect(ws.projects.get('app')!.targets.get('test')!.builder).toBe( + '@angular-builders/jest:run', + ); + }); + + it('sets zoneless to match detection (zoneless workspace → true)', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const out = (await runner().runSchematic('ng-add', {}, tree)) as UnitTestTree; + const ws = await readWorkspace(out); + const opts = ws.projects.get('app')!.targets.get('test')!.options as Record; + expect(opts['zoneless']).toBe(true); + }); +}); + +describe('jest ng-add (Karma present)', () => { + async function karmaWorkspace(): Promise { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await runner() + .callRule( + updateWorkspace((ws) => { + ws.projects.get('app')!.targets.set('test', { + builder: '@angular-devkit/build-angular:karma', + options: { polyfills: ['zone.js', 'zone.js/testing'] }, + }); + }), + tree, + ) + .forEach((t) => (tree = t as UnitTestTree)); + + const pkg = JSON.parse(tree.readText('/package.json')); + pkg.devDependencies = { + ...(pkg.devDependencies ?? {}), + karma: '^6.4.0', + 'karma-chrome-launcher': '^3.2.0', + 'karma-jasmine': '^5.1.0', + jasmine: '^5.1.0', + 'jasmine-core': '^5.1.0', + '@types/jasmine': '^5.1.0', + }; + tree.overwrite('/package.json', JSON.stringify(pkg, null, 2)); + tree.create('/karma.conf.js', '// karma config'); + tree.create('/src/test.ts', '// karma entry'); + tree.create( + '/tsconfig.spec.json', + JSON.stringify( + { compilerOptions: { types: ['jasmine'] }, files: ['src/test.ts', 'src/polyfills.ts'] }, + null, + 2, + ), + ); + return tree; + } + + it('removes karma/jasmine devDependencies', async () => { + const out = (await runner().runSchematic('ng-add', {}, await karmaWorkspace())) as UnitTestTree; + const pkg = JSON.parse(out.readText('/package.json')); + for (const dep of [ + 'karma', + 'karma-chrome-launcher', + 'karma-jasmine', + 'jasmine', + 'jasmine-core', + '@types/jasmine', + ]) { + expect(pkg.devDependencies[dep]).toBeUndefined(); + } + }); + + it('deletes karma.conf.js and src/test.ts', async () => { + const out = (await runner().runSchematic('ng-add', {}, await karmaWorkspace())) as UnitTestTree; + expect(out.exists('/karma.conf.js')).toBe(false); + expect(out.exists('/src/test.ts')).toBe(false); + }); + + it('fixes tsconfig.spec.json (types jasmine→jest, drops test.ts)', async () => { + const out = (await runner().runSchematic('ng-add', {}, await karmaWorkspace())) as UnitTestTree; + const cfg = JSON.parse(out.readText('/tsconfig.spec.json')); + expect(cfg.compilerOptions.types).toEqual(['jest']); + expect(cfg.files).toEqual(['src/polyfills.ts']); + }); +}); + +describe('jest ng-add (Vitest present)', () => { + async function vitestWorkspace(): Promise { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await runner() + .callRule( + updateWorkspace((ws) => { + ws.projects.get('app')!.targets.set('test', { + builder: '@angular/build:unit-test', + options: { buildTarget: 'app:build', tsConfig: 'tsconfig.spec.json' }, + }); + }), + tree, + ) + .forEach((t) => (tree = t as UnitTestTree)); + + tree.create( + '/tsconfig.spec.json', + JSON.stringify( + { compilerOptions: { types: ['vitest/globals'] }, include: ['src/**/*.spec.ts'] }, + null, + 2, + ), + ); + return tree; + } + + it('rewrites the Vitest test target to @angular-builders/jest:run', async () => { + const out = (await runner().runSchematic('ng-add', {}, await vitestWorkspace())) as UnitTestTree; + const ws = await readWorkspace(out); + expect(ws.projects.get('app')!.targets.get('test')!.builder).toBe( + '@angular-builders/jest:run', + ); + }); + + it('fixes tsconfig.spec.json types (vitest globals → jest)', async () => { + const out = (await runner().runSchematic('ng-add', {}, await vitestWorkspace())) as UnitTestTree; + const cfg = JSON.parse(out.readText('/tsconfig.spec.json')); + expect(cfg.compilerOptions.types).toEqual(['jest']); + }); + + it('logs an advisory about manually porting vi.* / vitest specs to Jest', async () => { + const messages: string[] = []; + const r = runner(); + r.logger.subscribe((e: logging.LogEntry) => messages.push(e.message)); + await r.runSchematic('ng-add', {}, await vitestWorkspace()); + const joined = messages.join('\n'); + expect(joined).toMatch(/vitest/i); + expect(joined).toMatch(/vi\.\*|manual/i); + }); + + it('does not delete files or remove devDependencies (lighter than Karma)', async () => { + const tree = await vitestWorkspace(); + const beforeDeps = JSON.parse(tree.readText('/package.json')).devDependencies ?? {}; + const out = (await runner().runSchematic('ng-add', {}, tree)) as UnitTestTree; + const afterDeps = JSON.parse(out.readText('/package.json')).devDependencies ?? {}; + for (const dep of Object.keys(beforeDeps)) { + expect(afterDeps[dep]).toBeDefined(); + } + expect(out.exists('/karma.conf.js')).toBe(false); + }); + + it('strips the prior :unit-test options (runner, buildTarget) from the jest target', async () => { + const out = (await runner().runSchematic('ng-add', {}, await vitestWorkspace())) as UnitTestTree; + const ws = await readWorkspace(out); + const options = ws.projects.get('app')!.targets.get('test')!.options as Record; + // buildTarget belongs to the Vitest unit-test builder; it must not leak to the Jest builder. + expect(options['buildTarget']).toBeUndefined(); + expect(options['runner']).toBeUndefined(); + expect(options['zoneless']).toBe(true); + }); +}); + +describe('jest ng-add (v22 Karma via :unit-test runner option)', () => { + // Angular 22 default (esbuild) apps express Karma as @angular/build:unit-test + runner:"karma", + // not a dedicated :karma builder. The schematic must detect this as Karma and rewrite to Jest + // with a clean option set (no stale `runner`). + async function v22KarmaWorkspace(): Promise { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await runner() + .callRule( + updateWorkspace((ws) => { + ws.projects.get('app')!.targets.set('test', { + builder: '@angular/build:unit-test', + options: { runner: 'karma', buildTarget: 'app:build' }, + }); + }), + tree, + ) + .forEach((t) => (tree = t as UnitTestTree)); + return tree; + } + + it('rewrites to @angular-builders/jest:run and drops the stale runner option', async () => { + const out = (await runner().runSchematic('ng-add', {}, await v22KarmaWorkspace())) as UnitTestTree; + const ws = await readWorkspace(out); + const test = ws.projects.get('app')!.targets.get('test')!; + expect(test.builder).toBe('@angular-builders/jest:run'); + const options = test.options as Record; + expect(options['runner']).toBeUndefined(); + expect(options['buildTarget']).toBeUndefined(); + }); +}); + +describe('jest ng-add (zoneless detection + idempotency)', () => { + it('sets zoneless:false when zone.js is in build polyfills', async () => { + let tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + await runner() + .callRule( + updateWorkspace((ws) => { + const build = ws.projects.get('app')!.targets.get('build')!; + build.options = { ...(build.options ?? {}), polyfills: ['zone.js'] }; + }), + tree, + ) + .forEach((t) => (tree = t as UnitTestTree)); + + const out = (await runner().runSchematic('ng-add', {}, tree)) as UnitTestTree; + const ws = await readWorkspace(out); + const opts = ws.projects.get('app')!.targets.get('test')!.options as Record; + expect(opts['zoneless']).toBe(false); + }); + + it('is idempotent: re-running on an already-jest workspace keeps :run', async () => { + const tree = await new SchematicTestHarness().createWorkspace({ projects: [{ name: 'app' }] }); + const once = (await runner().runSchematic('ng-add', {}, tree)) as UnitTestTree; + const twice = (await runner().runSchematic('ng-add', {}, once)) as UnitTestTree; + + const ws = await readWorkspace(twice); + expect(ws.projects.get('app')!.targets.get('test')!.builder).toBe( + '@angular-builders/jest:run', + ); + const pkg = JSON.parse(twice.readText('/package.json')); + expect(pkg.devDependencies['jest']).toBe('^30.0.0'); + }); +}); diff --git a/packages/jest/src/schematics/ng-add/index.ts b/packages/jest/src/schematics/ng-add/index.ts new file mode 100644 index 0000000000..b19176c5cc --- /dev/null +++ b/packages/jest/src/schematics/ng-add/index.ts @@ -0,0 +1,136 @@ +import { chain, Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; +import { workspaces } from '@angular-devkit/core'; +import { JSONFile } from '@schematics/angular/utility/json-file'; +import { readWorkspace } from '@schematics/angular/utility'; +import { + addBuilderDevDependency, + detectTestBuilder, + editJsonFile, + getProjectsToTarget, + isZoneless, + removeDevDependencies, + removeFilesIfPresent, + setBuilderForTarget, +} from '@angular-builders/common/schematics'; +import { NgAddOptions } from './schema'; + +const JEST_BUILDER = '@angular-builders/jest:run'; + +const JEST_STACK: Array<[name: string, version: string]> = [ + ['@angular-builders/jest', '^22.0.0'], + ['jest', '^30.0.0'], + ['jest-preset-angular', '^16.0.0'], + ['jest-environment-jsdom', '^30.0.0'], +]; + +const KARMA_DEVDEPS = [ + 'karma', + 'karma-chrome-launcher', + 'karma-coverage', + 'karma-jasmine', + 'karma-jasmine-html-reporter', + 'jasmine', + 'jasmine-core', + '@types/jasmine', +]; + +const KARMA_FILES = ['karma.conf.js', 'src/test.ts']; + +function hasKarma(tree: Tree, workspace: Awaited>): boolean { + for (const name of workspace.projects.keys()) { + if (detectTestBuilder(workspace as unknown as workspaces.WorkspaceDefinition, name) === 'karma') return true; + } + if (tree.exists('/karma.conf.js') || tree.exists('/karma.conf.ts')) return true; + if (tree.exists('/package.json')) { + const pkg = JSON.parse(tree.readText('/package.json')); + const dev = pkg.devDependencies ?? {}; + if (dev['karma'] || dev['jasmine'] || dev['jasmine-core']) return true; + } + return false; +} + +function hasVitest(workspace: Awaited>): boolean { + for (const name of workspace.projects.keys()) { + if (detectTestBuilder(workspace as unknown as workspaces.WorkspaceDefinition, name) === 'vitest') return true; + } + return false; +} + +const NON_JEST_SPEC_TYPES = ['jasmine', 'vitest', 'vitest/globals']; + +function fixSpecTsconfig(path: string): Rule { + return editJsonFile(path, (json: JSONFile) => { + const types = json.get(['compilerOptions', 'types']); + if (Array.isArray(types)) { + const next = types.filter((t) => !NON_JEST_SPEC_TYPES.includes(t as string)); + if (!next.includes('jest')) next.push('jest'); + json.modify(['compilerOptions', 'types'], next); + } + const files = json.get(['files']); + if (Array.isArray(files)) { + json.modify( + ['files'], + files.filter((f) => f !== 'src/test.ts' && f !== 'test.ts'), + ); + } + }); +} + +export function ngAdd(options: NgAddOptions): Rule { + return async (tree: Tree, context: SchematicContext) => { + const workspace = await readWorkspace(tree); + const projects = getProjectsToTarget(workspace as unknown as workspaces.WorkspaceDefinition, options.project); + + const rules: Rule[] = []; + + const existingPkg = tree.exists('/package.json') + ? JSON.parse(tree.readText('/package.json')) + : {}; + const existingDev: Record = existingPkg.devDependencies ?? {}; + const toAdd = JEST_STACK.filter(([name]) => !existingDev[name]); + toAdd.forEach(([name, version], i) => { + rules.push(addBuilderDevDependency(name, version, { install: i === toAdd.length - 1 })); + }); + + for (const projectName of projects) { + const zoneless = isZoneless(tree, workspace as unknown as workspaces.WorkspaceDefinition, projectName); + // replaceOptions: the previous test target may be a :unit-test (Karma/Vitest) or :karma + // builder whose options (runner, buildTarget, karmaConfig, ...) are meaningless to — and + // would be forwarded as bogus CLI args by — the Jest builder. Start from a clean jest config. + rules.push(setBuilderForTarget(projectName, 'test', JEST_BUILDER, { zoneless }, { replaceOptions: true })); + } + + if (hasKarma(tree, workspace)) { + rules.push(removeDevDependencies(KARMA_DEVDEPS)); + rules.push(removeFilesIfPresent(KARMA_FILES.map((f) => `/${f}`))); + const specPaths = new Set(['/tsconfig.spec.json']); + for (const projectName of projects) { + const root = workspace.projects.get(projectName)?.root ?? ''; + specPaths.add(root ? `/${root}/tsconfig.spec.json` : '/tsconfig.spec.json'); + } + for (const specPath of specPaths) { + rules.push(fixSpecTsconfig(specPath)); + } + } + + if (hasVitest(workspace)) { + context.logger.warn( + '[@angular-builders/jest] Detected Vitest as the current test runner. The `test` target ' + + 'was switched to @angular-builders/jest:run, but spec code using `vi.*` (e.g. vi.fn, ' + + 'vi.mock, vi.spyOn) or `import ... from \'vitest\'` is NOT rewritten — port it to the ' + + 'Jest API (jest.fn, jest.mock, jest.spyOn) manually. Cleanup is lighter than Karma: ' + + 'Vitest is built into @angular/build, so there is no karma.conf-style file to remove.', + ); + const specPaths = new Set(['/tsconfig.spec.json']); + for (const projectName of projects) { + const root = workspace.projects.get(projectName)?.root ?? ''; + specPaths.add(root ? `/${root}/tsconfig.spec.json` : '/tsconfig.spec.json'); + } + for (const specPath of specPaths) { + rules.push(fixSpecTsconfig(specPath)); + } + } + + return chain(rules); + }; +} diff --git a/packages/jest/src/schematics/ng-add/schema.json b/packages/jest/src/schematics/ng-add/schema.json new file mode 100644 index 0000000000..e031c39d09 --- /dev/null +++ b/packages/jest/src/schematics/ng-add/schema.json @@ -0,0 +1,16 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "JestNgAddSchema", + "title": "@angular-builders/jest ng-add options", + "type": "object", + "properties": { + "project": { + "type": "string", + "description": "The project to set up Jest for. Defaults to all projects (or the default project) when omitted.", + "$default": { + "$source": "projectName" + } + } + }, + "additionalProperties": false +} diff --git a/packages/jest/src/schematics/ng-add/schema.ts b/packages/jest/src/schematics/ng-add/schema.ts new file mode 100644 index 0000000000..d468fd7144 --- /dev/null +++ b/packages/jest/src/schematics/ng-add/schema.ts @@ -0,0 +1,3 @@ +export interface NgAddOptions { + project?: string; +} diff --git a/packages/jest/tests/e2e/karma-to-jest.ng-add.json b/packages/jest/tests/e2e/karma-to-jest.ng-add.json new file mode 100644 index 0000000000..54ce8c81e9 --- /dev/null +++ b/packages/jest/tests/e2e/karma-to-jest.ng-add.json @@ -0,0 +1,14 @@ +{ + "generate": { + "name": "karma-app", + "args": ["--test-runner", "karma", "--routing=false", "--style=scss"] + }, + "package": "@angular-builders/jest", + "ngAddArgs": [], + "asserts": [ + { "fn": "assertBuilderForTarget", "args": ["karma-app", "test", "@angular-builders/jest:run"] }, + { "fn": "assertFileAbsent", "args": ["karma.conf.js"] }, + { "fn": "assertDevDependency", "args": ["jest"] } + ], + "post": ["npx ng test"] +} diff --git a/packages/jest/tests/e2e/migration-v21.smoke.json b/packages/jest/tests/e2e/migration-v21.smoke.json new file mode 100644 index 0000000000..989ab7de91 --- /dev/null +++ b/packages/jest/tests/e2e/migration-v21.smoke.json @@ -0,0 +1,7 @@ +{ + "describes": "jest @21 migration post-migration build smoke", + "generates": "a fresh v22 app, seeded with the pre-21 jest config shape", + "runs": "scripts/e2e-jest-migration.js", + "window": "ng update @angular-builders/jest --migrate-only --from=20.0.0 --to=22.0.0", + "proves": "renames (configPath->config, testPathPattern->testPathPatterns[]) + tsconfig Node16/isolatedModules, then ng build + ng test green under v22" +} diff --git a/packages/jest/tests/e2e/vitest-to-jest.ng-add.json b/packages/jest/tests/e2e/vitest-to-jest.ng-add.json new file mode 100644 index 0000000000..ef108a3f77 --- /dev/null +++ b/packages/jest/tests/e2e/vitest-to-jest.ng-add.json @@ -0,0 +1,13 @@ +{ + "generate": { + "name": "vitest-app", + "args": ["--routing=false", "--style=scss"] + }, + "package": "@angular-builders/jest", + "ngAddArgs": [], + "asserts": [ + { "fn": "assertBuilderForTarget", "args": ["vitest-app", "test", "@angular-builders/jest:run"] }, + { "fn": "assertDevDependency", "args": ["jest"] } + ], + "post": ["npx ng build", "npx ng test"] +} diff --git a/packages/jest/tests/integration.js b/packages/jest/tests/integration.js index b396c5d597..135af592d6 100644 --- a/packages/jest/tests/integration.js +++ b/packages/jest/tests/integration.js @@ -24,6 +24,17 @@ module.exports = [ 'node ../../../packages/jest/tests/validate.js --run-script=test:inline-config --no-cache --expect-suites=2 --expect-tests=4', }, + // isolatedModules default - behavioral proof + { + id: 'isolated-modules-default', + name: 'jest: isolatedModules:true default works', + purpose: + 'Tests pass correctly with isolatedModules:true (default since v21), regression for #1899', + app: 'examples/jest/simple-app', + command: + 'node ../../../packages/jest/tests/validate.js --no-cache --expect-suites=2 --expect-tests=4', + }, + // CLI passthrough - validated tests { id: 'cli-no-cache', @@ -132,6 +143,39 @@ module.exports = [ 'node ../../../packages/jest/tests/validate.js my-shared-library --find-related-tests=projects/my-shared-library/src/lib/my-shared-library.service.ts,projects/my-shared-library/src/lib/my-shared-library.component.ts --expect-suites=2 --expect-tests=2', }, + // --- ng add e2e (Plan 04): real CLI ng add on an inline-generated app, then ng test --- + { + id: 'ng-add-karma-to-jest', + name: 'jest: ng add Karma->Jest', + purpose: 'ng add detects a Karma test target and ng test runs green via Jest', + app: '.', + command: + 'node scripts/e2e-ng-add.js --spec packages/jest/tests/e2e/karma-to-jest.ng-add.json', + }, + { + id: 'ng-add-vitest-to-jest', + name: 'jest: ng add Vitest->Jest', + purpose: 'ng add rewrites a Vitest unit-test target to Jest; ng build + ng test green', + app: '.', + command: + 'node scripts/e2e-ng-add.js --spec packages/jest/tests/e2e/vitest-to-jest.ng-add.json', + }, + { + id: 'ng-update-jest-v21-smoke', + name: 'jest: @21 migration post-build smoke', + purpose: 'jest @21 migration produces valid config; ng build + ng test green under v22', + app: '.', + command: 'node scripts/e2e-jest-migration.js', + }, + { + id: 'multi-project-coverage', + name: 'jest: multi-project coverage scoping', + purpose: 'Coverage output is scoped per project, not overwritten', + app: 'examples/jest/multiple-apps', + command: + 'node ../../../packages/jest/tests/validate-coverage.js', + }, + // E2E sanity { id: 'e2e-simple-app', diff --git a/packages/jest/tests/validate-coverage.js b/packages/jest/tests/validate-coverage.js new file mode 100644 index 0000000000..6fe7e62e60 --- /dev/null +++ b/packages/jest/tests/validate-coverage.js @@ -0,0 +1,49 @@ +#!/usr/bin/env node +/** + * Validates that coverage output is scoped per Angular project (fixes #1009). + * + * Each project should write coverage to /coverage/, not to a shared + * root-level directory that gets overwritten when multiple projects run. + * + * Run from the multiple-apps example directory. + */ +const { execSync } = require('child_process'); +const fs = require('fs'); +const path = require('path'); + +const projects = ['my-first-app', 'my-second-app', 'my-shared-library']; +const cwd = process.cwd(); +let allPassed = true; + +for (const project of projects) { + console.log(`\nRunning: ng test ${project} --coverage`); + try { + execSync(`yarn test ${project} --coverage 2>&1`, { encoding: 'utf-8', stdio: 'pipe' }); + } catch (e) { + // Jest exits non-zero on test failure but still writes coverage; ignore for this check + } + + // Angular CLI project root is under `projects/` + const projectRoot = path.join(cwd, 'projects', project); + const coverageDir = path.join(projectRoot, 'coverage'); + + if (!fs.existsSync(coverageDir)) { + console.error(`FAIL: Expected coverage directory not found: ${coverageDir}`); + console.error(` (coverage was likely written to root ./coverage instead)`); + allPassed = false; + } else { + console.log(`OK: Coverage scoped correctly at ${coverageDir}`); + } +} + +// Also assert that no root-level coverage dir was created (it would indicate the fix didn't work) +const rootCoverageDir = path.join(cwd, 'coverage'); +if (fs.existsSync(rootCoverageDir)) { + console.warn(`WARN: Root-level coverage/ directory exists at ${rootCoverageDir}`); + console.warn(` This may indicate per-project scoping is not fully working.`); +} + +if (!allPassed) { + process.exit(1); +} +console.log('\nAll per-project coverage directories verified correctly.'); diff --git a/packages/jest/tsconfig.lib.json b/packages/jest/tsconfig.lib.json index b97de4275c..bcd448d687 100644 --- a/packages/jest/tsconfig.lib.json +++ b/packages/jest/tsconfig.lib.json @@ -2,9 +2,11 @@ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "dist", - "noImplicitAny": false + "rootDir": "src", + "noImplicitAny": false, + "types": ["@types/jest"] }, "files": ["src/index.ts"], - "types": ["jest"], - "include": ["src/jest-config", "src/global-mocks"] + "include": ["src/jest-config", "src/global-mocks"], + "exclude": ["src/**/*.spec.ts"] } diff --git a/packages/jest/tsconfig.schematics.json b/packages/jest/tsconfig.schematics.json new file mode 100644 index 0000000000..e4f56b977a --- /dev/null +++ b/packages/jest/tsconfig.schematics.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.schematics.json", + "compilerOptions": { + "rootDir": "src/schematics", + "outDir": "dist/schematics" + }, + "include": ["src/schematics/**/*.ts"], + "exclude": ["node_modules", "**/*.spec.ts", "**/files/**"] +} diff --git a/packages/jest/tsconfig.spec.json b/packages/jest/tsconfig.spec.json index 210080dd87..e49ef493f9 100644 --- a/packages/jest/tsconfig.spec.json +++ b/packages/jest/tsconfig.spec.json @@ -1,7 +1,7 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "types": ["node", "jest"] + "types": ["node", "@types/jest"] }, "include": ["src/**/*.spec.ts"] } diff --git a/packages/timestamp/package.json b/packages/timestamp/package.json index df9c95a12d..b0e13782ae 100644 --- a/packages/timestamp/package.json +++ b/packages/timestamp/package.json @@ -29,16 +29,17 @@ "generate": "quicktype -s schema src/schema.json -o src/schema.ts" }, "dependencies": { - "@angular-devkit/architect": ">=0.2100.0 < 0.2200.0", - "@angular-devkit/core": "^21.0.0", + "@angular-devkit/architect": ">=0.2200.0 < 0.2300.0", + "@angular-devkit/core": "^22.0.0", "dateformat": "^5.0.0" }, "devDependencies": { "@types/dateformat": "5.0.3", + "@types/node": "^24.0.0", "cpy-cli": "^7.0.0", "jest": "30.4.2", "quicktype": "^15.0.260", "rimraf": "^6.0.0", - "typescript": "5.9.3" + "typescript": "6.0.3" } } diff --git a/packages/timestamp/tsconfig.json b/packages/timestamp/tsconfig.json index 75d8b2be38..a5abe05291 100644 --- a/packages/timestamp/tsconfig.json +++ b/packages/timestamp/tsconfig.json @@ -2,7 +2,9 @@ "extends": "../../tsconfig.json", "compilerOptions": { "outDir": "dist", - "noImplicitAny": false + "rootDir": "src", + "noImplicitAny": false, + "types": ["node"] }, "files": [ "src/index.ts" diff --git a/scripts/__fixtures__/e2e-smoke/angular.json b/scripts/__fixtures__/e2e-smoke/angular.json new file mode 100644 index 0000000000..270871d0c2 --- /dev/null +++ b/scripts/__fixtures__/e2e-smoke/angular.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "projects": { + "smoke": { + "projectType": "application", + "root": "", + "architect": { + "test": { "builder": "@angular-devkit/build-angular:karma", "options": {} } + } + } + } +} diff --git a/scripts/__fixtures__/e2e-smoke/karma.conf.js b/scripts/__fixtures__/e2e-smoke/karma.conf.js new file mode 100644 index 0000000000..ea41b01de4 --- /dev/null +++ b/scripts/__fixtures__/e2e-smoke/karma.conf.js @@ -0,0 +1 @@ +module.exports = function () {}; diff --git a/scripts/__fixtures__/e2e-smoke/package.json b/scripts/__fixtures__/e2e-smoke/package.json new file mode 100644 index 0000000000..813a623753 --- /dev/null +++ b/scripts/__fixtures__/e2e-smoke/package.json @@ -0,0 +1 @@ +{ "name": "smoke", "private": true } diff --git a/scripts/e2e-assert.js b/scripts/e2e-assert.js new file mode 100644 index 0000000000..439347d83b --- /dev/null +++ b/scripts/e2e-assert.js @@ -0,0 +1,63 @@ +'use strict'; +// Declarative post-`ng add` assertions used by *-ng-add.json expectation files. +// Each helper throws on failure (non-zero exit propagates through e2e-ng-add.js). +const fs = require('fs'); +const path = require('path'); + +function readJson(workdir, rel) { + return JSON.parse(fs.readFileSync(path.join(workdir, rel), 'utf8')); +} + +// Assert a file does NOT exist (e.g. karma.conf.js removed). +function assertFileAbsent(workdir, rel) { + if (fs.existsSync(path.join(workdir, rel))) { + throw new Error(`Expected file to be ABSENT but it exists: ${rel}`); + } +} + +// Assert a file exists and contains a substring (e.g. webpack.config.js scaffold). +function assertFileContains(workdir, rel, substr) { + const p = path.join(workdir, rel); + if (!fs.existsSync(p)) throw new Error(`Expected file to exist: ${rel}`); + const text = fs.readFileSync(p, 'utf8'); + if (!text.includes(substr)) { + throw new Error(`Expected ${rel} to contain ${JSON.stringify(substr)}`); + } +} + +// Assert angular.json target builder equals expected (e.g. test -> @angular-builders/jest:run). +function assertBuilderForTarget(workdir, project, target, expected) { + const ng = readJson(workdir, 'angular.json'); + const proj = ng.projects[project]; + if (!proj) throw new Error(`No project "${project}" in angular.json`); + const tgt = (proj.architect || proj.targets)[target]; + if (!tgt) throw new Error(`No target "${target}" in project "${project}"`); + const actual = tgt.builder; + if (actual !== expected) { + throw new Error(`Target ${project}:${target} builder = ${actual}, expected ${expected}`); + } +} + +// Assert a captured ng-add log file contains an advisory substring (webpack guard). +function assertLogContains(logFile, substr) { + const text = fs.readFileSync(logFile, 'utf8'); + if (!text.includes(substr)) { + throw new Error(`Expected ng add log to contain ${JSON.stringify(substr)}`); + } +} + +// Assert a devDependency was saved into package.json (save-to-devDependencies path). +function assertDevDependency(workdir, name) { + const pkg = readJson(workdir, 'package.json'); + if (!pkg.devDependencies || !pkg.devDependencies[name]) { + throw new Error(`Expected devDependency "${name}" to be saved in package.json`); + } +} + +module.exports = { + assertFileAbsent, + assertFileContains, + assertBuilderForTarget, + assertLogContains, + assertDevDependency, +}; diff --git a/scripts/e2e-jest-migration.js b/scripts/e2e-jest-migration.js new file mode 100644 index 0000000000..3ad90e6e38 --- /dev/null +++ b/scripts/e2e-jest-migration.js @@ -0,0 +1,117 @@ +#!/usr/bin/env node +'use strict'; +// jest @21 migration POST-MIGRATION BUILD SMOKE. +// +// 1. Generate a fresh v22 app inline (ng new), symlink the workspace node_modules. +// 2. SEED the pre-21 jest config shape the @21 migration transforms: +// - test target -> @angular-builders/jest:run with OLD option names +// (configPath, testPathPattern), which the migration renames to (config, testPathPatterns) +// - a jest.config.js so configPath resolves post-rename +// - tsconfig.spec.json WITHOUT module/moduleResolution Node16 and WITHOUT isolatedModules +// (the migration patches these in) +// 3. Run ONLY the jest @21 migration via the real CLI: +// ng update @angular-builders/jest --migrate-only --from=20.0.0 --to=22.0.0 --allow-dirty --force +// (--from < 21 <= --to so the (from, to] window includes the 21.0.0 threshold and migration-v21 fires.) +// 4. Assert the config was actually transformed (renames + tsconfig patch). +// 5. ng build + ng test under v22 to prove the migrated config is valid/runnable. +// +// Like e2e-ng-add.js, the package manager is neutralised during CLI steps via a PATH shim so +// migration/ng-update install tasks can't write through the symlinked node_modules. + +const { spawnSync } = require('child_process'); +const fs = require('fs'); +const os = require('os'); +const path = require('path'); + +const REPO_ROOT = path.join(__dirname, '..'); +const NG_BIN = path.join(REPO_ROOT, 'node_modules', '.bin', 'ng'); +const APP = 'mig-app'; + +function run(cmd, args, opts) { + console.log(`[jest-migration] $ ${cmd} ${args.join(' ')} (cwd=${opts.cwd})`); + const res = spawnSync(cmd, args, { stdio: 'inherit', ...opts }); + return res.status; +} + +function makePackageManagerShim() { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'pm-noop-')); + for (const pm of ['npm', 'yarn', 'pnpm', 'cnpm']) { + fs.writeFileSync(path.join(dir, pm), '#!/bin/sh\nexit 0\n', { mode: 0o755 }); + } + return dir; +} + +function seedPre21Shape(workdir) { + // angular.json: jest:run test target with the OLD option names. + const ngPath = path.join(workdir, 'angular.json'); + const ng = JSON.parse(fs.readFileSync(ngPath, 'utf8')); + const arch = ng.projects[APP].architect || ng.projects[APP].targets; + arch.test = { + builder: '@angular-builders/jest:run', + options: { configPath: 'jest.config.js', testPathPattern: 'src/.*\\.spec\\.ts$' }, + }; + fs.writeFileSync(ngPath, JSON.stringify(ng, null, 2)); + + // jest.config.js so `configPath` resolves once renamed to `config`. + fs.writeFileSync( + path.join(workdir, 'jest.config.js'), + "module.exports = { preset: 'jest-preset-angular' };\n" + ); + + // tsconfig.spec.json in the pre-21 shape (no Node16, no isolatedModules). + const specPath = path.join(workdir, 'tsconfig.spec.json'); + const spec = { + extends: './tsconfig.json', + compilerOptions: { outDir: './out-tsc/spec', module: 'ESNext', moduleResolution: 'node', types: ['jest'] }, + include: ['src/**/*.spec.ts', 'src/**/*.d.ts'], + }; + fs.writeFileSync(specPath, JSON.stringify(spec, null, 2)); +} + +function main() { + const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'jest-mig-')); + if (run(NG_BIN, ['new', APP, '--directory', APP, '--skip-install', '--skip-git', '--routing=false', '--style=scss'], { cwd: tmp }) !== 0) { + throw new Error('ng new failed'); + } + const workdir = path.join(tmp, APP); + fs.symlinkSync(path.join(REPO_ROOT, 'node_modules'), path.join(workdir, 'node_modules'), 'dir'); + + seedPre21Shape(workdir); + + const shimDir = makePackageManagerShim(); + const env = { ...process.env, PATH: `${shimDir}${path.delimiter}${process.env.PATH}` }; + + const status = run( + NG_BIN, + ['update', '@angular-builders/jest', '--migrate-only', '--from=20.0.0', '--to=22.0.0', '--allow-dirty', '--force'], + { cwd: workdir, env } + ); + if (status !== 0) throw new Error(`ng update --migrate-only failed with status ${status}`); + + // Assert the transforms landed. + const ng = JSON.parse(fs.readFileSync(path.join(workdir, 'angular.json'), 'utf8')); + const proj = ng.projects[APP]; + const testOpts = (proj.architect || proj.targets).test.options || {}; + if (testOpts.configPath !== undefined) throw new Error('configPath not renamed (still present)'); + if (testOpts.config === undefined) throw new Error('config (renamed from configPath) missing'); + if (testOpts.testPathPattern !== undefined) throw new Error('testPathPattern not renamed'); + if (testOpts.testPathPatterns === undefined) throw new Error('testPathPatterns (renamed) missing'); + + const spec = JSON.parse(fs.readFileSync(path.join(workdir, 'tsconfig.spec.json'), 'utf8')); + if (spec.compilerOptions.module !== 'Node16') throw new Error('tsconfig module not Node16'); + if (spec.compilerOptions.isolatedModules !== true) throw new Error('isolatedModules not true'); + console.log('[jest-migration] transform assertions OK'); + + // Prove the migrated config is valid/runnable under v22. + if (run('sh', ['-c', 'npx ng build'], { cwd: workdir, env }) !== 0) throw new Error('ng build failed post-migration'); + if (run('sh', ['-c', 'npx ng test'], { cwd: workdir, env }) !== 0) throw new Error('ng test failed post-migration'); + + console.log('[jest-migration] PASS'); +} + +try { + main(); +} catch (err) { + console.error(`[jest-migration] FAIL: ${err.message}`); + process.exit(1); +} diff --git a/scripts/e2e-loader-migration.js b/scripts/e2e-loader-migration.js new file mode 100644 index 0000000000..14badcd348 --- /dev/null +++ b/scripts/e2e-loader-migration.js @@ -0,0 +1,170 @@ +#!/usr/bin/env node +'use strict'; +// jiti loader migration POST-MIGRATION BUILD SMOKE (custom-webpack). +// +// Validates the v22 ts-node -> jiti `ng update` migration end-to-end via the REAL CLI +// (so the migrations.json wiring + ng-update field are exercised, not just the rule): +// 1. Generate a fresh v22 app inline (ng new), symlink the workspace node_modules. +// 2. Point the build target at @angular-builders/custom-webpack:browser with a +// TypeScript custom webpack config, and SEED the pre-jiti shape the migration fixes: +// - a `build-ts` npm script using NODE_OPTIONS='--loader ts-node/esm' (now broken) +// - ts-node / tsconfig-paths in devDependencies +// - a `ts-node` section in tsconfig.json with a `paths` override +// 3. Run ONLY the migration via the real CLI: +// ng update @angular-builders/custom-webpack --migrate-only --from=21.0.0 --to=22.0.0 ... +// 4. Assert the migration transformed the workspace (script stripped, deps removed, +// ts-node section's paths lifted into compilerOptions + section dropped). +// 5. ng build to prove the migrated workspace still builds and the `.ts` webpack config +// loads via jiti. +// +// Package manager is neutralised during the CLI step via a PATH shim so ng update's install +// task can't write through the symlinked node_modules (same approach as e2e-jest-migration.js). + +const { spawnSync } = require('child_process'); +const fs = require('fs'); +const os = require('os'); +const path = require('path'); + +const REPO_ROOT = path.join(__dirname, '..'); +const NG_BIN = path.join(REPO_ROOT, 'node_modules', '.bin', 'ng'); +const APP = 'loader-mig-app'; + +function run(cmd, args, opts) { + console.log(`[loader-migration] $ ${cmd} ${args.join(' ')} (cwd=${opts.cwd})`); + return spawnSync(cmd, args, { stdio: 'inherit', ...opts }).status; +} + +function makePackageManagerShim() { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'pm-noop-')); + for (const pm of ['npm', 'yarn', 'pnpm', 'cnpm']) { + fs.writeFileSync(path.join(dir, pm), '#!/bin/sh\nexit 0\n', { mode: 0o755 }); + } + return dir; +} + +function seedPreJitiShape(workdir) { + // Build target -> custom-webpack:browser with a TypeScript custom webpack config. + const ngPath = path.join(workdir, 'angular.json'); + const ng = JSON.parse(fs.readFileSync(ngPath, 'utf8')); + const arch = ng.projects[APP].architect || ng.projects[APP].targets; + arch.build = { + builder: '@angular-builders/custom-webpack:browser', + options: { + customWebpackConfig: { path: 'webpack.config.ts' }, + outputPath: 'dist/' + APP, + index: 'src/index.html', + main: 'src/main.ts', + tsConfig: 'tsconfig.app.json', + polyfills: [], + assets: [], + styles: ['src/styles.scss'], + }, + }; + fs.writeFileSync(ngPath, JSON.stringify(ng, null, 2)); + + // A no-op TypeScript custom webpack config (must be loaded by jiti post-migration). + fs.writeFileSync( + path.join(workdir, 'webpack.config.ts'), + "import { Configuration } from 'webpack';\nexport default (config: Configuration): Configuration => config;\n" + ); + + // package.json: a broken ts-node/esm script + ts-node/tsconfig-paths devDeps. + const pkgPath = path.join(workdir, 'package.json'); + const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); + pkg.scripts = pkg.scripts || {}; + pkg.scripts['build-ts'] = "NODE_OPTIONS='--loader ts-node/esm' ng build"; + pkg.devDependencies = pkg.devDependencies || {}; + pkg.devDependencies['ts-node'] = '10.9.2'; + pkg.devDependencies['tsconfig-paths'] = '4.2.0'; + fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2)); + + // tsconfig.json: a `ts-node` section with a path override the migration must lift. + const tsPath = path.join(workdir, 'tsconfig.json'); + const ts = JSON.parse(stripJsonComments(fs.readFileSync(tsPath, 'utf8'))); + ts['ts-node'] = { compilerOptions: { paths: { '@cfg/*': ['./src/cfg/*'] } } }; + fs.writeFileSync(tsPath, JSON.stringify(ts, null, 2)); +} + +// ng new's tsconfig.json contains // comments; strip them so JSON.parse works. +function stripJsonComments(text) { + return text.replace(/\/\*[\s\S]*?\*\//g, '').replace(/(^|[^:])\/\/.*$/gm, '$1'); +} + +function main() { + const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'loader-mig-')); + if ( + run( + NG_BIN, + [ + 'new', + APP, + '--directory', + APP, + '--skip-install', + '--skip-git', + '--routing=false', + '--style=scss', + ], + { cwd: tmp } + ) !== 0 + ) { + throw new Error('ng new failed'); + } + const workdir = path.join(tmp, APP); + fs.symlinkSync(path.join(REPO_ROOT, 'node_modules'), path.join(workdir, 'node_modules'), 'dir'); + + seedPreJitiShape(workdir); + + const shimDir = makePackageManagerShim(); + const env = { ...process.env, PATH: `${shimDir}${path.delimiter}${process.env.PATH}` }; + + const status = run( + NG_BIN, + [ + 'update', + '@angular-builders/custom-webpack', + '--migrate-only', + '--from=21.0.0', + '--to=22.0.0', + '--allow-dirty', + '--force', + ], + { cwd: workdir, env } + ); + if (status !== 0) throw new Error(`ng update --migrate-only failed with status ${status}`); + + // Assert the transforms landed. + const pkg = JSON.parse(fs.readFileSync(path.join(workdir, 'package.json'), 'utf8')); + if (/ts-node\/esm|NODE_OPTIONS/.test(pkg.scripts['build-ts'])) { + throw new Error( + `build-ts script still has the ts-node/esm workaround: ${pkg.scripts['build-ts']}` + ); + } + if (pkg.devDependencies['ts-node'] !== undefined) + throw new Error('ts-node devDependency not removed'); + if (pkg.devDependencies['tsconfig-paths'] !== undefined) { + throw new Error('tsconfig-paths devDependency not removed'); + } + + const ts = JSON.parse(fs.readFileSync(path.join(workdir, 'tsconfig.json'), 'utf8')); + if (ts['ts-node'] !== undefined) throw new Error('obsolete ts-node tsconfig section not removed'); + const paths = (ts.compilerOptions && ts.compilerOptions.paths) || {}; + if (JSON.stringify(paths['@cfg/*']) !== JSON.stringify(['./src/cfg/*'])) { + throw new Error('ts-node section paths were not lifted into compilerOptions'); + } + console.log('[loader-migration] transform assertions OK'); + + // Prove the migrated workspace builds and the .ts webpack config loads via jiti. + if (run('sh', ['-c', 'npx ng build'], { cwd: workdir, env }) !== 0) { + throw new Error('ng build failed post-migration'); + } + + console.log('[loader-migration] PASS'); +} + +try { + main(); +} catch (err) { + console.error(`[loader-migration] FAIL: ${err.message}`); + process.exit(1); +} diff --git a/scripts/e2e-ng-add.js b/scripts/e2e-ng-add.js new file mode 100644 index 0000000000..d21a406b34 --- /dev/null +++ b/scripts/e2e-ng-add.js @@ -0,0 +1,225 @@ +#!/usr/bin/env node +'use strict'; +// Drives a LOCAL-ONLY `ng add` e2e for an unpublished workspace build. +// +// The fixture app is GENERATED INLINE with the workspace's own Angular CLI (`ng new`) +// rather than committed to the repo — a fresh `ng new` app has no custom content worth +// version-controlling, and generating it keeps the test self-describing and immune to +// fixture drift across Angular majors. Only genuinely custom fixtures should be committed. +// +// What it does: +// 1. Generate a fresh app into a temp workdir via `ng new` (--skip-install), then symlink +// the repo's hoisted node_modules so the real CLI resolves. +// 2. Optionally run `prepareWorkdir` shell commands (e.g. rewrite angular.json to a +// webpack builder the default `ng new` wouldn't produce). +// 3. Run `ng add --collection --skip-install `, capturing +// combined output to a log file. The collection resolves from the workspace-linked +// package (already installed); `--skip-install` means `ng add` never runs the package +// manager, so it cannot mutate the symlinked node_modules. The schematic under test +// still runs in full (rewrites angular.json, writes devDeps, removes files). +// 4. Run the declarative assertions from the spec file against the workdir + log. +// 5. Run the post-add verification commands (e.g. `ng build`, `ng test`) in the workdir, +// resolving the real builder from the workspace-linked package. +// +// Why not `npm pack` + `ng add ./`? That exercises a real registry install, but here +// the workdir's node_modules is a symlink to the repo's hoisted install — a real `ng add` +// install would write THROUGH the symlink and pollute the workspace. Everything the schematic +// needs is already workspace-linked, so the install adds risk without testing our code. The +// tarball path is kept behind "useTarball": true for a future isolated-install CI (own +// node_modules per job), where the full resolve->install fidelity is safe to exercise. +// +// Usage: +// node scripts/e2e-ng-add.js --spec +// +// Spec file shape (JSON): +// { +// "generate": { // generate the fixture inline with `ng new` +// "name": "karma-app", // project + directory name +// "args": ["--test-runner", "karma"] // extra `ng new` args (style/routing/etc.) +// }, +// "prepareWorkdir": ["node ../prep.js"], // optional shell steps run before `ng add` +// "package": "@angular-builders/jest", // workspace package to pack +// "ngAddArgs": [], // extra args to `ng add` +// "expectAddSucceeds": true, // ng add must exit 0 (default true) +// "asserts": [ // run after ng add, before build/test +// { "fn": "assertBuilderForTarget", "args": ["karma-app", "test", "@angular-builders/jest:run"] }, +// { "fn": "assertFileAbsent", "args": ["karma.conf.js"] } +// ], +// "post": ["npx ng build", "npx ng test"] // commands run in workdir; each must exit 0 +// } +// +// A committed fixture may be used instead of "generate" via "fixture": "" +// (copied into the workdir). Use this only for fixtures with custom content `ng new` can't produce. +// +// Fallback (when npm pack + tarball resolve is not viable): set "useCollectionFallback": true, +// which runs `ng add --collection ...` against the workspace-linked package. + +const { execFileSync, spawnSync } = require('child_process'); +const fs = require('fs'); +const os = require('os'); +const path = require('path'); +const assert = require('./e2e-assert'); + +const REPO_ROOT = path.join(__dirname, '..'); +const NG_BIN = path.join(REPO_ROOT, 'node_modules', '.bin', 'ng'); + +function parseArgs(argv) { + const out = {}; + for (let i = 0; i < argv.length; i++) { + if (argv[i] === '--spec' && argv[i + 1]) out.spec = argv[++i]; + } + if (!out.spec) { + console.error('Usage: node scripts/e2e-ng-add.js --spec '); + process.exit(2); + } + return out; +} + +// Recursively copy a directory, skipping node_modules / .angular / dist caches. +function copyDir(src, dest) { + const SKIP = new Set(['node_modules', '.angular', 'dist', '.git']); + fs.mkdirSync(dest, { recursive: true }); + for (const entry of fs.readdirSync(src, { withFileTypes: true })) { + if (SKIP.has(entry.name)) continue; + const s = path.join(src, entry.name); + const d = path.join(dest, entry.name); + if (entry.isDirectory()) copyDir(s, d); + else fs.copyFileSync(s, d); + } +} + +function run(cmd, args, opts) { + console.log(`[e2e-ng-add] $ ${cmd} ${args.join(' ')} (cwd=${opts.cwd})`); + const res = spawnSync(cmd, args, { stdio: ['ignore', 'pipe', 'pipe'], ...opts }); + const stdout = (res.stdout || '').toString(); + const stderr = (res.stderr || '').toString(); + process.stdout.write(stdout); + process.stderr.write(stderr); + return { status: res.status, stdout, stderr }; +} + +// Symlink the repo root's hoisted node_modules so the real Angular CLI resolves. +// Yarn 3 workspaces hoist everything to the repo root node_modules. +function linkNodeModules(workdir) { + const wdNodeModules = path.join(workdir, 'node_modules'); + if (!fs.existsSync(wdNodeModules)) { + fs.symlinkSync(path.join(REPO_ROOT, 'node_modules'), wdNodeModules, 'dir'); + } +} + +// Create a directory of no-op package-manager shims (npm/yarn/pnpm/cnpm) to prepend to PATH +// during the `ng add` run. The schematic schedules a NodePackageInstallTask; with node_modules +// symlinked to the workspace, a real install would write THROUGH the symlink and mutate the +// repo. We intentionally do not exercise npm's installer (that's the CLI's job, not our +// schematic's, and everything needed is already workspace-linked) — so we let the task run +// against a no-op PM. Every tree change the schematic makes still happens; only the install +// is neutered. ng build/test afterwards resolve from the symlinked workspace modules. +function makePackageManagerShim() { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'pm-noop-')); + for (const pm of ['npm', 'yarn', 'pnpm', 'cnpm']) { + const file = path.join(dir, pm); + fs.writeFileSync(file, '#!/bin/sh\nexit 0\n', { mode: 0o755 }); + } + return dir; +} + +// Generate a fresh app inline with the workspace CLI; returns the app directory. +function generateFixture(spec, parentDir) { + const { name, args = [] } = spec.generate; + const r = run( + NG_BIN, + ['new', name, '--directory', name, '--skip-install', '--skip-git', ...args], + { cwd: parentDir } + ); + if (r.status !== 0) throw new Error(`ng new failed with status ${r.status}`); + return path.join(parentDir, name); +} + +function main() { + const { spec: specPath } = parseArgs(process.argv.slice(2)); + const spec = JSON.parse(fs.readFileSync(path.resolve(REPO_ROOT, specPath), 'utf8')); + + const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'ng-add-e2e-')); + console.log(`[e2e-ng-add] tmp = ${tmp}`); + + let workdir; + if (spec.generate) { + workdir = generateFixture(spec, tmp); + } else if (spec.fixture) { + const fixtureAbs = path.resolve(REPO_ROOT, spec.fixture); + if (!fs.existsSync(fixtureAbs)) throw new Error(`Fixture not found: ${spec.fixture}`); + workdir = path.join(tmp, path.basename(fixtureAbs)); + copyDir(fixtureAbs, workdir); + } else { + throw new Error('Spec must define either "generate" or "fixture".'); + } + console.log(`[e2e-ng-add] workdir = ${workdir}`); + linkNodeModules(workdir); + + // Optional pre-`ng add` preparation (e.g. rewrite angular.json to a webpack builder). + for (const cmd of spec.prepareWorkdir || []) { + const r = run('sh', ['-c', cmd], { cwd: workdir }); + if (r.status !== 0) throw new Error(`prepareWorkdir command failed (${r.status}): ${cmd}`); + } + + const logFile = path.join(workdir, 'ng-add.log'); + + if (spec.useTarball) { + // Opt-in (isolated-install envs only): npm pack the built package, then `ng add ./`. + // This runs a real install — only safe when the workdir has its OWN node_modules. + const pkgDir = path.join(REPO_ROOT, 'packages', spec.package.replace('@angular-builders/', '')); + const packOut = execFileSync('npm', ['pack', '--silent', '--pack-destination', workdir], { + cwd: pkgDir, + encoding: 'utf8', + }).trim(); + const tarball = packOut.split('\n').pop().trim(); + const tarballAbs = path.join(workdir, tarball); + console.log(`[e2e-ng-add] packed ${spec.package} -> ${tarball}`); + const args = ['add', tarballAbs, '--skip-confirmation', ...(spec.ngAddArgs || [])]; + const r = run(NG_BIN, args, { cwd: workdir }); + fs.writeFileSync(logFile, r.stdout + r.stderr); + if ((spec.expectAddSucceeds !== false) && r.status !== 0) { + throw new Error(`ng add failed with status ${r.status}`); + } + } else { + // Default: real CLI, collection resolved from the workspace-linked package. The schematic's + // install task runs against a no-op PM shim (see makePackageManagerShim) so it can't mutate + // the symlinked workspace node_modules. + const shimDir = makePackageManagerShim(); + const args = ['add', spec.package, '--collection', spec.package, '--skip-confirmation', + ...(spec.ngAddArgs || [])]; + const r = run(NG_BIN, args, { + cwd: workdir, + env: { ...process.env, PATH: `${shimDir}${path.delimiter}${process.env.PATH}` }, + }); + fs.writeFileSync(logFile, r.stdout + r.stderr); + if ((spec.expectAddSucceeds !== false) && r.status !== 0) { + throw new Error(`ng add failed with status ${r.status}`); + } + } + + // Declarative assertions (workdir-relative). + for (const a of spec.asserts || []) { + const fn = assert[a.fn]; + if (!fn) throw new Error(`Unknown assert fn: ${a.fn}`); + // assertLogContains takes an absolute log path as first arg; others take workdir. + if (a.fn === 'assertLogContains') fn(logFile, ...a.args); + else fn(workdir, ...a.args); + console.log(`[e2e-ng-add] OK assert ${a.fn}(${JSON.stringify(a.args)})`); + } + + // Post-add verification commands (real build/test under the workspace Angular major). + for (const cmd of spec.post || []) { + const r = run('sh', ['-c', cmd], { cwd: workdir }); + if (r.status !== 0) throw new Error(`post command failed (${r.status}): ${cmd}`); + } + + console.log('[e2e-ng-add] PASS'); +} + +try { + main(); +} catch (err) { + console.error(`[e2e-ng-add] FAIL: ${err.message}`); + process.exit(1); +} diff --git a/scripts/update-example.js b/scripts/update-example.js index a211fd1d3c..b79b0a65f4 100644 --- a/scripts/update-example.js +++ b/scripts/update-example.js @@ -1,59 +1,105 @@ const { execSync } = require('child_process'); const package = require(`${process.cwd()}/package.json`); -const version = Number.parseInt(process.argv.slice(2)); + +// Accepts either an integer major (e.g. `22`), an explicit version +// (e.g. `22.0.0-rc.2`), or a dist-tag (e.g. `next`). The explicit/tag form is +// required for RC prework: `@angular/cli@22` resolves to the latest *stable* 22 +// (nonexistent during RC), whereas `next`/`22.0.0-rc.2` resolve to the RC. +const rawArg = process.argv.slice(2)[0]; + +const parseTarget = arg => { + if (arg === undefined || arg === '') { + throw new Error( + 'No version argument provided. Pass a major (e.g. 22), an explicit version (e.g. 22.0.0-rc.2), or a dist-tag (e.g. next).' + ); + } + const major = Number.parseInt(arg, 10); + // `spec` is what we hand to npm/ng (`@angular/cli@`). + return { spec: String(arg), major: Number.isNaN(major) ? null : major }; +}; + +const { spec, major } = parseTarget(rawArg); const checkNodeVersion = () => { const nodeVersion = process.version; const majorVersion = parseInt(nodeVersion.slice(1).split('.')[0]); const minorVersion = parseInt(nodeVersion.slice(1).split('.')[1]); - + console.log(`Current Node.js version: ${nodeVersion}`); - + // Check if Node.js version meets Angular CLI 20+ requirements - if (version >= 20) { - const meetRequirements = + if (major !== null && major >= 20) { + const meetRequirements = (majorVersion === 20 && minorVersion >= 19) || (majorVersion === 22 && minorVersion >= 12) || majorVersion >= 24; - + if (!meetRequirements) { - console.warn(`⚠️ Warning: Angular CLI ${version} requires Node.js ^20.19.0 || ^22.12.0 || >=24.0.0`); + console.warn( + `⚠️ Warning: Angular CLI ${spec} requires Node.js ^20.19.0 || ^22.12.0 || >=24.0.0` + ); console.warn(` Current version: ${nodeVersion}`); console.warn(` Attempting to continue, but update may fail...`); } } }; +// For prereleases, `ng update` requires --next to accept the RC migration target. +const ngUpdateFlags = () => { + const needsNext = spec === 'next' || spec.includes('-'); + return needsNext ? ' --next' : ''; +}; + +// angular-eslint ships its own `ng update` migration (`@angular-eslint/schematics`) and +// tracks the Angular major 1:1. `ng update @angular/core @angular/cli` does NOT touch it, +// so without this each major strands angular-eslint on the previous version — which drags a +// duplicate previous-major `@angular-devkit/*` subtree into `yarn.lock`. Update it in the +// same pass when the app depends on it. Skipped for prereleases/tags: angular-eslint RCs +// lag Angular's, so target it only once the major is stable. +const extraUpdateTargets = () => { + const deps = { ...package.dependencies, ...package.devDependencies }; + const usesAngularEslint = + 'angular-eslint' in deps || + '@angular-eslint/schematics' in deps || + '@angular-eslint/builder' in deps; + if (!usesAngularEslint) return ''; + if (major === null || spec.includes('-') || spec === 'next') return ''; + return ` @angular-eslint/schematics@${major}`; +}; + const runNgUpdate = () => { - console.log(`Updating Angular version for ${package.name}`); + console.log(`Updating Angular version for ${package.name} to ${spec}`); checkNodeVersion(); - + try { // Try using npx with specific CLI version first for better compatibility - const command = `npx @angular/cli@${version} update @angular/core@${version} @angular/cli@${version} --create-commits --verbose`; + const command = `npx @angular/cli@${spec} update @angular/core@${spec} @angular/cli@${spec}${extraUpdateTargets()}${ngUpdateFlags()} --create-commits --verbose`; console.log(`Running: ${command}`); - + execSync(command, { cwd: process.cwd(), stdio: 'inherit', }); - console.log(`✅ Successfully updated ${package.name} to Angular ${version}`); + console.log(`✅ Successfully updated ${package.name} to Angular ${spec}`); } catch (error) { - console.log(`❌ Failed to update ${package.name} to Angular ${version}`); + console.log(`❌ Failed to update ${package.name} to Angular ${spec}`); console.log(`Error: ${error.message}`); - + // If the specific version fails, try fallback approach if (error.message.includes('incompatible')) { console.log('🔄 Trying fallback approach...'); try { - execSync(`yarn add -D @angular/cli@^${version}.0.0`, { - cwd: process.cwd(), - stdio: 'inherit', - }); - execSync(`yarn ng update @angular/core@${version} --create-commits --verbose`, { + execSync(`yarn add -D @angular/cli@${spec}`, { cwd: process.cwd(), stdio: 'inherit', }); + execSync( + `yarn ng update @angular/core@${spec}${extraUpdateTargets()}${ngUpdateFlags()} --create-commits --verbose`, + { + cwd: process.cwd(), + stdio: 'inherit', + } + ); console.log(`✅ Successfully updated ${package.name} using fallback method`); } catch (fallbackError) { console.log(`❌ Fallback also failed: ${fallbackError.message}`); @@ -65,22 +111,22 @@ const runNgUpdate = () => { } // console.log('Committing the changes'); - // execSync(`git commit -am 'chore(deps): update ${package.name} to Angular ${version}'`); + // execSync(`git commit -am 'chore(deps): update ${package.name} to Angular ${spec}'`); // console.log('Successfully committed the changes'); }; const updateNonAngularApp = () => { - console.log(`Updating non Angular app ${package.name}`); + console.log(`Updating non Angular app ${package.name} to ${spec}`); checkNodeVersion(); - + try { - execSync(`yarn add -D @angular/cli@^${version}.0.0`, { + execSync(`yarn add -D @angular/cli@${spec}`, { cwd: process.cwd(), stdio: 'inherit', }); - console.log(`✅ Successfully updated ${package.name} to Angular CLI ${version}`); + console.log(`✅ Successfully updated ${package.name} to Angular CLI ${spec}`); console.log('Committing the changes'); - execSync(`git commit -am 'chore(deps): update ${package.name} to Angular CLI ${version}'`); + execSync(`git commit -am 'chore(deps): update ${package.name} to Angular CLI ${spec}'`); console.log('Successfully committed the changes'); } catch (error) { console.log(`❌ Failed to update ${package.name}: ${error.message}`); diff --git a/scripts/update-package.js b/scripts/update-package.js index f03067c4e3..a835fcdbc8 100644 --- a/scripts/update-package.js +++ b/scripts/update-package.js @@ -1,6 +1,27 @@ const { writeFileSync } = require('fs'); const package = require(`${process.cwd()}/package.json`); -const version = Number.parseInt(process.argv.slice(2)); + +// Accepts either an integer major (e.g. `22`) or an explicit version string +// (e.g. `22.0.0-rc.2`). The explicit form is required for RC/prerelease prework +// because a bare `^22.0.0` range excludes prereleases like `22.0.0-rc.2` by semver. +const rawArg = process.argv.slice(2)[0]; + +const parseTarget = arg => { + if (arg === undefined || arg === '') { + throw new Error( + 'No version argument provided. Pass a major (e.g. 22) or explicit version (e.g. 22.0.0-rc.2).' + ); + } + const major = Number.parseInt(arg, 10); + if (Number.isNaN(major)) { + throw new Error(`Invalid version argument "${arg}".`); + } + // An explicit version string carries a minor/patch and/or a prerelease tag. + const explicit = /\d+\.\d+/.test(arg) || arg.includes('-') ? arg : null; + return { major, explicit, isPrerelease: arg.includes('-') }; +}; + +const { major, explicit, isPrerelease } = parseTarget(rawArg); const isStable = { '@angular-devkit/build-angular': true, @@ -9,13 +30,30 @@ const isStable = { '@angular/compiler': true, '@angular/compiler-cli': true, '@angular/build': true, + '@angular/core': true, + '@angular/platform-browser-dynamic': true, + '@schematics/angular': true, + '@angular-devkit/schematics': true, +}; + +const stableRange = () => (explicit ? `^${explicit}` : `^${major}.0.0`); + +// @angular-devkit/architect uses the 0.{major}00.0 scheme. For prereleases we +// must carry the prerelease tag onto the lower bound, otherwise the range +// excludes the prerelease (e.g. >=0.2200.0-rc.2 < 0.2300.0). +const architectRange = () => { + if (explicit && isPrerelease) { + const pre = explicit.slice(explicit.indexOf('-')); // e.g. "-rc.2" + return `>=0.${major}00.0${pre} < 0.${major + 1}00.0`; + } + return `>=0.${major}00.0 < 0.${major + 1}00.0`; }; const determineVersions = deps => { let newDeps = []; for (const [name, stable] of Object.entries(isStable)) { if (deps[name]) { - let versionRange = stable ? `^${version}.0.0` : `>=0.${version}00.0 < 0.${version + 1}00.0`; + let versionRange = stable ? stableRange() : architectRange(); console.log(`Found dependency ${name}, new version range is ${versionRange}`); newDeps.push({ name, versionRange }); } @@ -31,9 +69,10 @@ const runUpdate = (newDeps, deps) => { }; const updatePackage = () => { - console.log(`Updating package ${package.name}`); + console.log(`Updating package ${package.name} to Angular ${explicit || major}`); let updated = false; - for (const deps of [package.dependencies, package.devDependencies]) { + for (const deps of [package.dependencies, package.devDependencies, package.peerDependencies]) { + if (!deps) continue; const newDeps = determineVersions(deps); if (newDeps.length > 0) { runUpdate(newDeps, deps); diff --git a/tsconfig.schematics.json b/tsconfig.schematics.json new file mode 100644 index 0000000000..142aab8747 --- /dev/null +++ b/tsconfig.schematics.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "module": "Node16", + "moduleResolution": "Node16", + "target": "ES2022", + "lib": ["ES2022"], + "types": ["node"], + "declaration": true, + "strict": true, + "strictNullChecks": false, + "strictPropertyInitialization": false, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true, + "sourceMap": true, + "pretty": true + }, + "exclude": ["node_modules", "**/*.spec.ts", "**/files/**"] +} diff --git a/yarn.lock b/yarn.lock index 8b20c800b7..eb2a28ccd2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,157 +5,157 @@ __metadata: version: 10 cacheKey: 10c0 -"@algolia/abtesting@npm:1.14.1": - version: 1.14.1 - resolution: "@algolia/abtesting@npm:1.14.1" +"@algolia/abtesting@npm:1.18.0": + version: 1.18.0 + resolution: "@algolia/abtesting@npm:1.18.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - "@algolia/requester-browser-xhr": "npm:5.48.1" - "@algolia/requester-fetch": "npm:5.48.1" - "@algolia/requester-node-http": "npm:5.48.1" - checksum: 10c0/81c1f48fee026e62043924496eff0d60f499787699aa48d0013fb4b24c06091c863b5e5ecde00f26a6eb2e5cd587d386d9e1d384ee1f21eecec86788d552ac0d + "@algolia/client-common": "npm:5.52.0" + "@algolia/requester-browser-xhr": "npm:5.52.0" + "@algolia/requester-fetch": "npm:5.52.0" + "@algolia/requester-node-http": "npm:5.52.0" + checksum: 10c0/a0d8cf0b103499d82f67714c0e2174b825a6e77ab0db5bc7017515e7245d3a69431d07495b84d84bb5f1592a10dc0c30bc2cbaf4a6166d387fc6d5cfc54cfc51 languageName: node linkType: hard -"@algolia/client-abtesting@npm:5.48.1": - version: 5.48.1 - resolution: "@algolia/client-abtesting@npm:5.48.1" +"@algolia/client-abtesting@npm:5.52.0": + version: 5.52.0 + resolution: "@algolia/client-abtesting@npm:5.52.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - "@algolia/requester-browser-xhr": "npm:5.48.1" - "@algolia/requester-fetch": "npm:5.48.1" - "@algolia/requester-node-http": "npm:5.48.1" - checksum: 10c0/380d527f4ec686fab95221673bea8b6667b6a3927aaec8d7f4623f464238409d795839a3cdf5e72a7784532f8039099a727c87ef858443c445107423d01308f8 + "@algolia/client-common": "npm:5.52.0" + "@algolia/requester-browser-xhr": "npm:5.52.0" + "@algolia/requester-fetch": "npm:5.52.0" + "@algolia/requester-node-http": "npm:5.52.0" + checksum: 10c0/9d80c57b860c981d896cc15bb092ba8f8fcca18c1456e1feb81ed8fc74f806ef16d4247ada06bdfa63dbf3a2fbf7f07aeef740af07ce414d408a276979212cd5 languageName: node linkType: hard -"@algolia/client-analytics@npm:5.48.1": - version: 5.48.1 - resolution: "@algolia/client-analytics@npm:5.48.1" +"@algolia/client-analytics@npm:5.52.0": + version: 5.52.0 + resolution: "@algolia/client-analytics@npm:5.52.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - "@algolia/requester-browser-xhr": "npm:5.48.1" - "@algolia/requester-fetch": "npm:5.48.1" - "@algolia/requester-node-http": "npm:5.48.1" - checksum: 10c0/7249bb679bb891e62d8e2add29c9a1fbdf233af1ae3ac6c350d264096cd32e65c65d0eac2e76101413be6fb6b0c94bae34d04918cf785c645b637b1dd95334d1 + "@algolia/client-common": "npm:5.52.0" + "@algolia/requester-browser-xhr": "npm:5.52.0" + "@algolia/requester-fetch": "npm:5.52.0" + "@algolia/requester-node-http": "npm:5.52.0" + checksum: 10c0/d15948a0a9687ac9de7ec712c005ca9a6e1da40bb0b20264ddd35e0a5eab4c6b118938c037278224025b7791f855ff55466c344b5cf2ce721540893000b2cc0a languageName: node linkType: hard -"@algolia/client-common@npm:5.48.1": - version: 5.48.1 - resolution: "@algolia/client-common@npm:5.48.1" - checksum: 10c0/001a9614a423d45cbc8792affa9e1008e6eee98fa6abf701495d09ffc98d103cbd4f0591144292e87f129f9d4f0250bd23b9a514c8a0e0f754631ac2f1ed8079 +"@algolia/client-common@npm:5.52.0": + version: 5.52.0 + resolution: "@algolia/client-common@npm:5.52.0" + checksum: 10c0/5f13e2fe97fd78a62b77af3b84b34c4059bd6205e56813151311a11a8f74d55e1723990098231a9e530aa1f618140602902723dc903e7ee0268d3d1d6eb775e0 languageName: node linkType: hard -"@algolia/client-insights@npm:5.48.1": - version: 5.48.1 - resolution: "@algolia/client-insights@npm:5.48.1" +"@algolia/client-insights@npm:5.52.0": + version: 5.52.0 + resolution: "@algolia/client-insights@npm:5.52.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - "@algolia/requester-browser-xhr": "npm:5.48.1" - "@algolia/requester-fetch": "npm:5.48.1" - "@algolia/requester-node-http": "npm:5.48.1" - checksum: 10c0/52a91a8f75314f849032bfd8107e34ad0a2998f9e15093443f21f78f9f0adeaa667f4c38311424aa4d042aa97ee71179ca87304ac83a4f865980d26d977a9ac1 + "@algolia/client-common": "npm:5.52.0" + "@algolia/requester-browser-xhr": "npm:5.52.0" + "@algolia/requester-fetch": "npm:5.52.0" + "@algolia/requester-node-http": "npm:5.52.0" + checksum: 10c0/a5893529cf08fad6160aa54b5224d1741c392d8a2d38a231161306031ce555e82146d1a21569f9207f8760b068d09b408f0aba10eddd9022d364f4178a7b682f languageName: node linkType: hard -"@algolia/client-personalization@npm:5.48.1": - version: 5.48.1 - resolution: "@algolia/client-personalization@npm:5.48.1" +"@algolia/client-personalization@npm:5.52.0": + version: 5.52.0 + resolution: "@algolia/client-personalization@npm:5.52.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - "@algolia/requester-browser-xhr": "npm:5.48.1" - "@algolia/requester-fetch": "npm:5.48.1" - "@algolia/requester-node-http": "npm:5.48.1" - checksum: 10c0/09205ad8fbf0d1c473d567f6861b615934b12453ad0aecaf28efdf64d60a3468dc584136a19d84bd345cc58d66aac1104c9f78a9005a17227400beb860fd2976 + "@algolia/client-common": "npm:5.52.0" + "@algolia/requester-browser-xhr": "npm:5.52.0" + "@algolia/requester-fetch": "npm:5.52.0" + "@algolia/requester-node-http": "npm:5.52.0" + checksum: 10c0/03d736e812c61ea6838f6fe5e6a54e5648a4836afd9bbabe24a996bdd5a9fda85938a507ac2e331e4ecffe88a5ccae8c221211ee3aaa22663d8ee0210216b9c5 languageName: node linkType: hard -"@algolia/client-query-suggestions@npm:5.48.1": - version: 5.48.1 - resolution: "@algolia/client-query-suggestions@npm:5.48.1" +"@algolia/client-query-suggestions@npm:5.52.0": + version: 5.52.0 + resolution: "@algolia/client-query-suggestions@npm:5.52.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - "@algolia/requester-browser-xhr": "npm:5.48.1" - "@algolia/requester-fetch": "npm:5.48.1" - "@algolia/requester-node-http": "npm:5.48.1" - checksum: 10c0/072a18a39a6eab30b0974a4fffe7e5265d91e274d99ea919219dd6bcf6490a989e6649993bb569d37646368bfe46c309060de52b56ea0fd9f582f2bfba7090e9 + "@algolia/client-common": "npm:5.52.0" + "@algolia/requester-browser-xhr": "npm:5.52.0" + "@algolia/requester-fetch": "npm:5.52.0" + "@algolia/requester-node-http": "npm:5.52.0" + checksum: 10c0/5a98017fb601ad665b1119b82f992aecfadf10e4e60040f9d9d6567d1b54cbb382130b114ac6b5b4b15e28e5ef4e0464e10216623ef26a93e3db119f07eaa110 languageName: node linkType: hard -"@algolia/client-search@npm:5.48.1": - version: 5.48.1 - resolution: "@algolia/client-search@npm:5.48.1" +"@algolia/client-search@npm:5.52.0": + version: 5.52.0 + resolution: "@algolia/client-search@npm:5.52.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - "@algolia/requester-browser-xhr": "npm:5.48.1" - "@algolia/requester-fetch": "npm:5.48.1" - "@algolia/requester-node-http": "npm:5.48.1" - checksum: 10c0/7a9e5054ee490e7d9224b5f87044a72a95ca2eda2982342b4ed2ca2e36a4bcc4f4c3b02c56a96679483545217c3b0e67a75a510a2fcf12e48ff86e51c7b1863b + "@algolia/client-common": "npm:5.52.0" + "@algolia/requester-browser-xhr": "npm:5.52.0" + "@algolia/requester-fetch": "npm:5.52.0" + "@algolia/requester-node-http": "npm:5.52.0" + checksum: 10c0/7b80e359bf4f5d616c359bb40d0fc0d3be6a2991da64ab88c4ea636e706b944258f88d5cdf92f69354f74dd1b0ab53b6ab76d187af2fb2db4b1ddfdff8896d76 languageName: node linkType: hard -"@algolia/ingestion@npm:1.48.1": - version: 1.48.1 - resolution: "@algolia/ingestion@npm:1.48.1" +"@algolia/ingestion@npm:1.52.0": + version: 1.52.0 + resolution: "@algolia/ingestion@npm:1.52.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - "@algolia/requester-browser-xhr": "npm:5.48.1" - "@algolia/requester-fetch": "npm:5.48.1" - "@algolia/requester-node-http": "npm:5.48.1" - checksum: 10c0/1397ed4a5b6ebf1306defbd1d18a78aa8d9ed23cb566c5da9c14e955859df0497e2bb0b16b7ea177e654a20fe08d148c58bdb3405891739e63a84362d0764218 + "@algolia/client-common": "npm:5.52.0" + "@algolia/requester-browser-xhr": "npm:5.52.0" + "@algolia/requester-fetch": "npm:5.52.0" + "@algolia/requester-node-http": "npm:5.52.0" + checksum: 10c0/f012a083ae8464015c468843eb938b42b63b18e53219e0477fd52d54b86927c0b92a5af7d49b22eb4d2d04a62f04797d30a0212cd948e0ee82fca6fe19b19e8f languageName: node linkType: hard -"@algolia/monitoring@npm:1.48.1": - version: 1.48.1 - resolution: "@algolia/monitoring@npm:1.48.1" +"@algolia/monitoring@npm:1.52.0": + version: 1.52.0 + resolution: "@algolia/monitoring@npm:1.52.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - "@algolia/requester-browser-xhr": "npm:5.48.1" - "@algolia/requester-fetch": "npm:5.48.1" - "@algolia/requester-node-http": "npm:5.48.1" - checksum: 10c0/8ba1306003408c6913349bf019b9e7736610195d00ee6d55b67034416b8cb329c4791d508a24a805ed2ae8bd099528ae1abb3d0f9ea28bcb39039eb3d6df80a2 + "@algolia/client-common": "npm:5.52.0" + "@algolia/requester-browser-xhr": "npm:5.52.0" + "@algolia/requester-fetch": "npm:5.52.0" + "@algolia/requester-node-http": "npm:5.52.0" + checksum: 10c0/3d1b6f7a4eb7e06e2e1d1d09d6883cb19c98d5776c08465c435a2243fc36333619fa6335c7959d954d9c0b03b3b3521d4d0accfe637f4a651c7debf7813c8ddf languageName: node linkType: hard -"@algolia/recommend@npm:5.48.1": - version: 5.48.1 - resolution: "@algolia/recommend@npm:5.48.1" +"@algolia/recommend@npm:5.52.0": + version: 5.52.0 + resolution: "@algolia/recommend@npm:5.52.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - "@algolia/requester-browser-xhr": "npm:5.48.1" - "@algolia/requester-fetch": "npm:5.48.1" - "@algolia/requester-node-http": "npm:5.48.1" - checksum: 10c0/d00e362dcd7b39bad81666e0e35fb40c1032c922d3ca0a73a91fdd05549810ed11baa523fcd2508b5f7447e59724f981775e795f8a88abca6194b929617056f8 + "@algolia/client-common": "npm:5.52.0" + "@algolia/requester-browser-xhr": "npm:5.52.0" + "@algolia/requester-fetch": "npm:5.52.0" + "@algolia/requester-node-http": "npm:5.52.0" + checksum: 10c0/ca989bb537435c3352af87fee7400f05264f32cb03244acf2a62074e97fa1e3cfa51ea78804888b69e11aa8bfc24b8c7d3776f1b80ca3c4086423e36c1c35877 languageName: node linkType: hard -"@algolia/requester-browser-xhr@npm:5.48.1": - version: 5.48.1 - resolution: "@algolia/requester-browser-xhr@npm:5.48.1" +"@algolia/requester-browser-xhr@npm:5.52.0": + version: 5.52.0 + resolution: "@algolia/requester-browser-xhr@npm:5.52.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - checksum: 10c0/9428aa0bcf52ea008e2b88ad63b2dc8e049f8656b50a7300af3515d06e50c9b00d54e443e86223c80967041b3cc6acb7016b666f19c73888f5c9d582c2764a70 + "@algolia/client-common": "npm:5.52.0" + checksum: 10c0/f6a62bb3d3c527a7701147c53c3ce2c4d5a292eb37dd873fcad55acb03a8fc1b8fcc7588fdd5a0ac91e727bb9b45fe202518f586ffe2f366c8f91feff51fccf4 languageName: node linkType: hard -"@algolia/requester-fetch@npm:5.48.1": - version: 5.48.1 - resolution: "@algolia/requester-fetch@npm:5.48.1" +"@algolia/requester-fetch@npm:5.52.0": + version: 5.52.0 + resolution: "@algolia/requester-fetch@npm:5.52.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - checksum: 10c0/82694d0f0f6193fcc694381e27117845b85c77ac5dd86c2f41320e96f59d41adc66fe85a10fb751470d6eb2a5d3b0fc150e330e295451670a3c081cae796470e + "@algolia/client-common": "npm:5.52.0" + checksum: 10c0/c1d6225f35ce00f933c97cff4c7a527029fd17a23eb1043c3fa49100e85bd1b7f136681e524f5a60dce844e1bdc5f65af2812f5c39b54b75b214d297b032accc languageName: node linkType: hard -"@algolia/requester-node-http@npm:5.48.1": - version: 5.48.1 - resolution: "@algolia/requester-node-http@npm:5.48.1" +"@algolia/requester-node-http@npm:5.52.0": + version: 5.52.0 + resolution: "@algolia/requester-node-http@npm:5.52.0" dependencies: - "@algolia/client-common": "npm:5.48.1" - checksum: 10c0/22daffd2e8452f9d5d16f5210f28e0f989c28d35d107e95f4644b6960ebd6bd98b542c5d86f44ba61eba298e35d38f87e1747ffd43823ee6d81edc7fcdd85c51 + "@algolia/client-common": "npm:5.52.0" + checksum: 10c0/862b42e517d1a46f472283c9487f96881c5e641afc99d3b17a90ae937916308cdd577633e1d20ce0181cf143585551c649d1b66cd582cada58f27a2aad9ef310 languageName: node linkType: hard @@ -173,14 +173,15 @@ __metadata: version: 0.0.0-use.local resolution: "@angular-builders/bazel@workspace:packages/bazel" dependencies: - "@angular-devkit/architect": "npm:>=0.2100.0 < 0.2200.0" - "@angular-devkit/core": "npm:^21.0.0" + "@angular-devkit/architect": "npm:>=0.2200.0 < 0.2300.0" + "@angular-devkit/core": "npm:^22.0.0" "@bazel/bazelisk": "npm:^1.26.0" "@bazel/ibazel": "npm:^0.28.0" + "@types/node": "npm:^24.0.0" cpy-cli: "npm:^7.0.0" quicktype: "npm:^15.0.260" rimraf: "npm:^6.0.0" - typescript: "npm:5.9.3" + typescript: "npm:6.0.3" languageName: unknown linkType: soft @@ -188,11 +189,14 @@ __metadata: version: 0.0.0-use.local resolution: "@angular-builders/common@workspace:packages/common" dependencies: - "@angular-devkit/core": "npm:^21.0.0" + "@angular-devkit/core": "npm:^22.0.0" + "@angular-devkit/schematics": "npm:^22.0.0" + "@schematics/angular": "npm:^22.0.0" + copyfiles: "npm:^2.4.1" + get-tsconfig: "npm:^4.10.0" + jiti: "npm:^2.7.0" rimraf: "npm:^6.0.0" - ts-node: "npm:^10.0.0" - tsconfig-paths: "npm:^4.2.0" - typescript: "npm:5.9.3" + typescript: "npm:6.0.3" languageName: unknown linkType: soft @@ -201,16 +205,18 @@ __metadata: resolution: "@angular-builders/custom-esbuild@workspace:packages/custom-esbuild" dependencies: "@angular-builders/common": "workspace:*" - "@angular-devkit/architect": "npm:>=0.2100.0 < 0.2200.0" - "@angular-devkit/core": "npm:^21.0.0" - "@angular/build": "npm:^21.0.0" + "@angular-devkit/architect": "npm:>=0.2200.0 < 0.2300.0" + "@angular-devkit/core": "npm:^22.0.0" + "@angular-devkit/schematics": "npm:^22.0.0" + "@angular/build": "npm:^22.0.0" + "@schematics/angular": "npm:^22.0.0" + copyfiles: "npm:^2.4.1" esbuild: "npm:0.28.0" jest: "npm:30.4.2" rimraf: "npm:^6.0.0" - ts-node: "npm:^10.0.0" - typescript: "npm:5.9.3" + typescript: "npm:6.0.3" peerDependencies: - "@angular/compiler-cli": ^21.0.0 + "@angular/compiler-cli": ^22.0.0 rxjs: ">=7.0.0" vitest: ">=2" languageName: unknown @@ -221,18 +227,20 @@ __metadata: resolution: "@angular-builders/custom-webpack@workspace:packages/custom-webpack" dependencies: "@angular-builders/common": "workspace:*" - "@angular-devkit/architect": "npm:>=0.2100.0 < 0.2200.0" - "@angular-devkit/build-angular": "npm:^21.0.0" - "@angular-devkit/core": "npm:^21.0.0" - "@angular/build": "npm:^21.0.0" + "@angular-devkit/architect": "npm:>=0.2200.0 < 0.2300.0" + "@angular-devkit/build-angular": "npm:^22.0.0" + "@angular-devkit/core": "npm:^22.0.0" + "@angular-devkit/schematics": "npm:^22.0.0" + "@angular/build": "npm:^22.0.0" + "@schematics/angular": "npm:^22.0.0" + copyfiles: "npm:^2.4.1" jest: "npm:30.4.2" lodash: "npm:^4.17.15" rimraf: "npm:^6.0.0" - ts-node: "npm:^10.0.0" - typescript: "npm:5.9.3" + typescript: "npm:6.0.3" webpack-merge: "npm:^6.0.0" peerDependencies: - "@angular/compiler-cli": ^21.0.0 + "@angular/compiler-cli": ^22.0.0 rxjs: ">=7.0.0" languageName: unknown linkType: soft @@ -242,21 +250,24 @@ __metadata: resolution: "@angular-builders/jest@workspace:packages/jest" dependencies: "@angular-builders/common": "workspace:*" - "@angular-devkit/architect": "npm:>=0.2100.0 < 0.2200.0" - "@angular-devkit/core": "npm:^21.0.0" + "@angular-devkit/architect": "npm:>=0.2200.0 < 0.2300.0" + "@angular-devkit/core": "npm:^22.0.0" + "@angular-devkit/schematics": "npm:^22.0.0" + "@schematics/angular": "npm:^22.0.0" "@types/jest": "npm:^30.0.0" + copyfiles: "npm:^2.4.1" cpy-cli: "npm:^7.0.0" jest: "npm:30.4.2" jest-preset-angular: "npm:^16.0.0" lodash: "npm:^4.17.15" quicktype: "npm:^15.0.260" rimraf: "npm:^6.0.0" - typescript: "npm:5.9.3" + typescript: "npm:6.0.3" peerDependencies: - "@angular-devkit/build-angular": ^21.0.0 - "@angular/compiler-cli": ^21.0.0 - "@angular/core": ^21.0.0 - "@angular/platform-browser-dynamic": ^21.0.0 + "@angular-devkit/build-angular": ^22.0.0 + "@angular/compiler-cli": ^22.0.0 + "@angular/core": ^22.0.0 + "@angular/platform-browser-dynamic": ^22.0.0 jest: ^30.0.0 rxjs: ">=7.0.0" languageName: unknown @@ -266,39 +277,40 @@ __metadata: version: 0.0.0-use.local resolution: "@angular-builders/timestamp@workspace:packages/timestamp" dependencies: - "@angular-devkit/architect": "npm:>=0.2100.0 < 0.2200.0" - "@angular-devkit/core": "npm:^21.0.0" + "@angular-devkit/architect": "npm:>=0.2200.0 < 0.2300.0" + "@angular-devkit/core": "npm:^22.0.0" "@types/dateformat": "npm:5.0.3" + "@types/node": "npm:^24.0.0" cpy-cli: "npm:^7.0.0" dateformat: "npm:^5.0.0" jest: "npm:30.4.2" quicktype: "npm:^15.0.260" rimraf: "npm:^6.0.0" - typescript: "npm:5.9.3" + typescript: "npm:6.0.3" languageName: unknown linkType: soft -"@angular-devkit/architect@npm:0.2102.14, @angular-devkit/architect@npm:>= 0.2100.0 < 0.2200.0, @angular-devkit/architect@npm:>=0.2100.0 < 0.2200.0": - version: 0.2102.14 - resolution: "@angular-devkit/architect@npm:0.2102.14" +"@angular-devkit/architect@npm:0.2200.0, @angular-devkit/architect@npm:>= 0.2200.0 < 0.2300.0, @angular-devkit/architect@npm:>=0.2200.0 < 0.2300.0": + version: 0.2200.0 + resolution: "@angular-devkit/architect@npm:0.2200.0" dependencies: - "@angular-devkit/core": "npm:21.2.14" + "@angular-devkit/core": "npm:22.0.0" rxjs: "npm:7.8.2" bin: architect: bin/cli.js - checksum: 10c0/f63eaf99fa648b0ba3c859862aae0709494b467db2ad75b794f1d99096408866be67129fba80ae01180200559970a5fc6fd84bc458b55cc97ec5fab6ab64cdc9 + checksum: 10c0/b0b5fb1ca4ec9e8fc4eed8a75810a9c9ab654ec7d5f111e08348cac41ab51c2e5ae5090f83d89b7ecb7aa74da5b00c244cfe601ad8e41bc883a43e91ac212e37 languageName: node linkType: hard -"@angular-devkit/build-angular@npm:21.2.14, @angular-devkit/build-angular@npm:^21.0.0": - version: 21.2.14 - resolution: "@angular-devkit/build-angular@npm:21.2.14" +"@angular-devkit/build-angular@npm:22.0.0, @angular-devkit/build-angular@npm:^22.0.0": + version: 22.0.0 + resolution: "@angular-devkit/build-angular@npm:22.0.0" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.2102.14" - "@angular-devkit/build-webpack": "npm:0.2102.14" - "@angular-devkit/core": "npm:21.2.14" - "@angular/build": "npm:21.2.14" + "@angular-devkit/architect": "npm:0.2200.0" + "@angular-devkit/build-webpack": "npm:0.2200.0" + "@angular-devkit/core": "npm:22.0.0" + "@angular/build": "npm:22.0.0" "@babel/core": "npm:7.29.0" "@babel/generator": "npm:7.29.1" "@babel/helper-annotate-as-pure": "npm:7.27.3" @@ -306,66 +318,61 @@ __metadata: "@babel/plugin-transform-async-generator-functions": "npm:7.29.0" "@babel/plugin-transform-async-to-generator": "npm:7.28.6" "@babel/plugin-transform-runtime": "npm:7.29.0" - "@babel/preset-env": "npm:7.29.2" + "@babel/preset-env": "npm:7.29.3" "@babel/runtime": "npm:7.29.2" - "@discoveryjs/json-ext": "npm:0.6.3" - "@ngtools/webpack": "npm:21.2.14" + "@discoveryjs/json-ext": "npm:1.1.0" + "@ngtools/webpack": "npm:22.0.0" ansi-colors: "npm:4.1.3" - autoprefixer: "npm:10.4.27" - babel-loader: "npm:10.0.0" + autoprefixer: "npm:10.5.0" + babel-loader: "npm:10.1.1" browserslist: "npm:^4.26.0" copy-webpack-plugin: "npm:14.0.0" - css-loader: "npm:7.1.3" - esbuild: "npm:0.27.3" - esbuild-wasm: "npm:0.27.3" + css-loader: "npm:7.1.4" + esbuild: "npm:0.28.0" + esbuild-wasm: "npm:0.28.0" http-proxy-middleware: "npm:3.0.5" istanbul-lib-instrument: "npm:6.0.3" jsonc-parser: "npm:3.3.1" karma-source-map-support: "npm:1.4.0" - less: "npm:4.4.2" - less-loader: "npm:12.3.1" + less: "npm:4.6.4" + less-loader: "npm:12.3.2" license-webpack-plugin: "npm:4.0.2" loader-utils: "npm:3.3.1" - mini-css-extract-plugin: "npm:2.10.0" + mini-css-extract-plugin: "npm:2.10.2" open: "npm:11.0.0" - ora: "npm:9.3.0" + ora: "npm:9.4.0" picomatch: "npm:4.0.4" piscina: "npm:5.1.4" - postcss: "npm:8.5.12" - postcss-loader: "npm:8.2.0" + postcss: "npm:8.5.13" + postcss-loader: "npm:8.2.1" resolve-url-loader: "npm:5.0.0" rxjs: "npm:7.8.2" - sass: "npm:1.97.3" + sass: "npm:1.99.0" sass-loader: "npm:16.0.7" semver: "npm:7.7.4" source-map-loader: "npm:5.0.0" source-map-support: "npm:0.5.21" - terser: "npm:5.46.0" - tinyglobby: "npm:0.2.15" - tree-kill: "npm:1.2.2" + terser: "npm:5.46.2" + tinyglobby: "npm:0.2.16" tslib: "npm:2.8.1" - webpack: "npm:5.105.2" - webpack-dev-middleware: "npm:7.4.5" + webpack: "npm:5.106.2" + webpack-dev-middleware: "npm:8.0.3" webpack-dev-server: "npm:5.2.3" webpack-merge: "npm:6.0.1" webpack-subresource-integrity: "npm:5.1.0" peerDependencies: - "@angular/compiler-cli": ^21.0.0 - "@angular/core": ^21.0.0 - "@angular/localize": ^21.0.0 - "@angular/platform-browser": ^21.0.0 - "@angular/platform-server": ^21.0.0 - "@angular/service-worker": ^21.0.0 - "@angular/ssr": ^21.2.14 - "@web/test-runner": ^0.20.0 + "@angular/compiler-cli": ^22.0.0 + "@angular/core": ^22.0.0 + "@angular/localize": ^22.0.0 + "@angular/platform-browser": ^22.0.0 + "@angular/platform-server": ^22.0.0 + "@angular/service-worker": ^22.0.0 + "@angular/ssr": ^22.0.0 browser-sync: ^3.0.2 - jest: ^30.2.0 - jest-environment-jsdom: ^30.2.0 karma: ^6.3.0 - ng-packagr: ^21.0.0 - protractor: ^7.0.0 + ng-packagr: ^22.0.0 tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 - typescript: ">=5.9 <6.0" + typescript: ">=6.0 <6.1" dependenciesMeta: esbuild: optional: true @@ -382,44 +389,36 @@ __metadata: optional: true "@angular/ssr": optional: true - "@web/test-runner": - optional: true browser-sync: optional: true - jest: - optional: true - jest-environment-jsdom: - optional: true karma: optional: true ng-packagr: optional: true - protractor: - optional: true tailwindcss: optional: true - checksum: 10c0/adbe4742bd67aa247283a57a2bc57d623c64a210a23c955d57c056c29b9d47504a7695c302e98ecd81c207739a1e9bdffbbc61d543de9439b8e7f2beca0b2522 + checksum: 10c0/bf94be79cec019e71c188f4055cb56a1b3ac5c5edbcb90e211df5dd60d4a8664f5a4bffe0d22974d18e0062111b1d786843607674a95e6ae461449e45aca87fe languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.2102.14": - version: 0.2102.14 - resolution: "@angular-devkit/build-webpack@npm:0.2102.14" +"@angular-devkit/build-webpack@npm:0.2200.0": + version: 0.2200.0 + resolution: "@angular-devkit/build-webpack@npm:0.2200.0" dependencies: - "@angular-devkit/architect": "npm:0.2102.14" + "@angular-devkit/architect": "npm:0.2200.0" rxjs: "npm:7.8.2" peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 - checksum: 10c0/39959127f6863db82be281eff5193537d0bb19aa0f2c61da58dbbfd750ec09110dad7805d6eacaaf637c2ecc550b9d4a7e1ac8cc55c48c44f70181a416b1b91d + checksum: 10c0/1bc3cbf9f8e4f11f232e067a8735c8f4bc518250717ea4e5aa6f569da02a75a36a7257be497d479263242e65150b2a48ca0f572aa11317f511d160f9338e1769 languageName: node linkType: hard -"@angular-devkit/core@npm:21.2.14, @angular-devkit/core@npm:>= 21.0.0 < 22.0.0, @angular-devkit/core@npm:^21.0.0": - version: 21.2.14 - resolution: "@angular-devkit/core@npm:21.2.14" +"@angular-devkit/core@npm:22.0.0, @angular-devkit/core@npm:>= 22.0.0 < 23.0.0, @angular-devkit/core@npm:^22.0.0": + version: 22.0.0 + resolution: "@angular-devkit/core@npm:22.0.0" dependencies: - ajv: "npm:8.18.0" + ajv: "npm:8.20.0" ajv-formats: "npm:3.0.1" jsonc-parser: "npm:3.3.1" picomatch: "npm:4.0.4" @@ -430,179 +429,178 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/7c7afaced9b4d5ac101013152dfcac8f2c1a56d21c0cff27e4af36743a61bdd10ad5f90a511fdc91db67294bf9ae6b666e07ba4ab95005ea55081bbe6700ed4b + checksum: 10c0/f7115f661a29bb0fa52ed06325c1dcd5058512770c36cfc5c42e53f6f3cf9a33581da0eeb0c8f9119ae3c8fa056607b1d2434c4c9952b7ad022f8416cf1be48e languageName: node linkType: hard -"@angular-devkit/schematics@npm:21.2.14, @angular-devkit/schematics@npm:>= 21.0.0 < 22.0.0": - version: 21.2.14 - resolution: "@angular-devkit/schematics@npm:21.2.14" +"@angular-devkit/schematics@npm:22.0.0, @angular-devkit/schematics@npm:>= 22.0.0 < 23.0.0, @angular-devkit/schematics@npm:^22.0.0": + version: 22.0.0 + resolution: "@angular-devkit/schematics@npm:22.0.0" dependencies: - "@angular-devkit/core": "npm:21.2.14" + "@angular-devkit/core": "npm:22.0.0" jsonc-parser: "npm:3.3.1" magic-string: "npm:0.30.21" - ora: "npm:9.3.0" + ora: "npm:9.4.0" rxjs: "npm:7.8.2" - checksum: 10c0/8bde712e14a02de436e490dc538dea1abb054c8740daaa199078b9088aaae54e639917deadac40df377a0eeec9179e15f884dafa677dc2ec95d4ed708a4163a3 + checksum: 10c0/f806f209de2aedbcfae237fa636a2106483e6a95772249b94a7c4d7b4cfb37437e1a53b40872fd14862a3273c004070bc276d2b65cee2551410b36fe649bc9d5 languageName: node linkType: hard -"@angular-eslint/builder@npm:21.4.0": - version: 21.4.0 - resolution: "@angular-eslint/builder@npm:21.4.0" +"@angular-eslint/builder@npm:22.0.0": + version: 22.0.0 + resolution: "@angular-eslint/builder@npm:22.0.0" dependencies: - "@angular-devkit/architect": "npm:>= 0.2100.0 < 0.2200.0" - "@angular-devkit/core": "npm:>= 21.0.0 < 22.0.0" + "@angular-devkit/architect": "npm:>= 0.2200.0 < 0.2300.0" + "@angular-devkit/core": "npm:>= 22.0.0 < 23.0.0" peerDependencies: - "@angular/cli": ">= 21.0.0 < 22.0.0" - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + "@angular/cli": ">= 22.0.0 < 23.0.0" + eslint: ^9.0.0 || ^10.0.0 typescript: "*" - checksum: 10c0/8dccc78832daf705e9afe33e1f462b7039eaa2810427d88fceb8b9f33e54715de955a25334453eb8ccaa1636e4e48ac286a42cd0d2c9581f0d85935ad6c59181 + checksum: 10c0/da5303ceaa5b224c5bf28683cb97acadacaeca41d697c73fa57850b1988bff0eef74bbe99ac0bb890101bd0b83213fc27d962cd055e543ff64e6eaf47bdeeab2 languageName: node linkType: hard -"@angular-eslint/bundled-angular-compiler@npm:21.4.0": - version: 21.4.0 - resolution: "@angular-eslint/bundled-angular-compiler@npm:21.4.0" - checksum: 10c0/a45469c81c91cd8a3929ead57d2295790be5bd784a28a52035f25cdaab58957668f25e4a79fedb159af9dc5c2441ec08dd73bf482a586382164998d2d0798a7b +"@angular-eslint/bundled-angular-compiler@npm:22.0.0": + version: 22.0.0 + resolution: "@angular-eslint/bundled-angular-compiler@npm:22.0.0" + checksum: 10c0/879bfa7269ada0d498135cfd9e5eca66c1bc031a5c5cf3e68eaf3f11312660a769c2fe41a56a6e2d304ccb7c761b99af7e4c43dfd05cefdf08b8da590e51a78b languageName: node linkType: hard -"@angular-eslint/eslint-plugin-template@npm:21.4.0": - version: 21.4.0 - resolution: "@angular-eslint/eslint-plugin-template@npm:21.4.0" +"@angular-eslint/eslint-plugin-template@npm:22.0.0": + version: 22.0.0 + resolution: "@angular-eslint/eslint-plugin-template@npm:22.0.0" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:21.4.0" - "@angular-eslint/utils": "npm:21.4.0" + "@angular-eslint/bundled-angular-compiler": "npm:22.0.0" + "@angular-eslint/utils": "npm:22.0.0" aria-query: "npm:5.3.2" axobject-query: "npm:4.1.0" peerDependencies: - "@angular-eslint/template-parser": 21.4.0 - "@typescript-eslint/types": ^7.11.0 || ^8.0.0 - "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + "@angular-eslint/template-parser": 22.0.0 + "@typescript-eslint/types": ^8.0.0 + "@typescript-eslint/utils": ^8.0.0 + eslint: ^9.0.0 || ^10.0.0 typescript: "*" - checksum: 10c0/292236b2948218a1b2d550aa0076c0a2500ea1c7e6326b7fb67531c8769ab7633ba9e548e0309ec5f829d802807e60211d31d6e62f92129786fb296675477192 + checksum: 10c0/2da98e5a30bf125fdeba968b9f583ea8694ef41272267e5ec3d42d27cd3c7a45f164918fff8e6810dbbb704e80b25fb46792ac63cca60a176f8a3e5161aff83d languageName: node linkType: hard -"@angular-eslint/eslint-plugin@npm:21.4.0": - version: 21.4.0 - resolution: "@angular-eslint/eslint-plugin@npm:21.4.0" +"@angular-eslint/eslint-plugin@npm:22.0.0": + version: 22.0.0 + resolution: "@angular-eslint/eslint-plugin@npm:22.0.0" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:21.4.0" - "@angular-eslint/utils": "npm:21.4.0" + "@angular-eslint/bundled-angular-compiler": "npm:22.0.0" + "@angular-eslint/utils": "npm:22.0.0" ts-api-utils: "npm:^2.1.0" peerDependencies: - "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + "@typescript-eslint/utils": ^8.0.0 + eslint: ^9.0.0 || ^10.0.0 typescript: "*" - checksum: 10c0/91c05e49137b36ad004596cccd0872b4311ec7961916c8a12b2230dd0623323ab55479c9c3cf630462d42a9c4289cf51d3bf9aedc4015fa451fa6e9bbb692022 + checksum: 10c0/4ed793ef29a2c5acc96c9170324526e8f62aec13474ecb6a6e9c347166fe90b24457ba5d7995109ec7976ddb194bd08e4408df3256c0075f2ebf1cceb1e80ef7 languageName: node linkType: hard -"@angular-eslint/schematics@npm:21.4.0": - version: 21.4.0 - resolution: "@angular-eslint/schematics@npm:21.4.0" +"@angular-eslint/schematics@npm:22.0.0": + version: 22.0.0 + resolution: "@angular-eslint/schematics@npm:22.0.0" dependencies: - "@angular-devkit/core": "npm:>= 21.0.0 < 22.0.0" - "@angular-devkit/schematics": "npm:>= 21.0.0 < 22.0.0" - "@angular-eslint/eslint-plugin": "npm:21.4.0" - "@angular-eslint/eslint-plugin-template": "npm:21.4.0" + "@angular-devkit/core": "npm:>= 22.0.0 < 23.0.0" + "@angular-devkit/schematics": "npm:>= 22.0.0 < 23.0.0" + "@angular-eslint/eslint-plugin": "npm:22.0.0" + "@angular-eslint/eslint-plugin-template": "npm:22.0.0" ignore: "npm:7.0.5" - semver: "npm:7.7.4" + semver: "npm:7.8.0" strip-json-comments: "npm:3.1.1" peerDependencies: - "@angular/cli": ">= 21.0.0 < 22.0.0" - checksum: 10c0/35fe94274dc2539baae1140075f7d36d8be6b7e3ac85c2d7cf957b89105209b2154eba6f71503c48645cdc63a3f8c1fadea7e84596050213f8ea269ad09909f3 + "@angular/cli": ">= 22.0.0 < 23.0.0" + checksum: 10c0/e164514b1d5fdbcdf440e287e6ed1147b2c9538ec07f94382d0519b9614bc847c9ae61dc36586ca2ada58ef7e53f2e24ee2b5c28a325d8b1b17b44d98f575b9a languageName: node linkType: hard -"@angular-eslint/template-parser@npm:21.4.0": - version: 21.4.0 - resolution: "@angular-eslint/template-parser@npm:21.4.0" +"@angular-eslint/template-parser@npm:22.0.0": + version: 22.0.0 + resolution: "@angular-eslint/template-parser@npm:22.0.0" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:21.4.0" + "@angular-eslint/bundled-angular-compiler": "npm:22.0.0" eslint-scope: "npm:9.1.2" peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + eslint: ^9.0.0 || ^10.0.0 typescript: "*" - checksum: 10c0/f4d7ac146d41d000c4517c7c3630e773a470394492c7ae43728246a2b11f52d206bdb5644ce4e1bad61de3d133d59ca6bdf0070cafe084e0db6583e9c787c284 + checksum: 10c0/8b587d4d45a3ab9a9b0c7ed37e4e2d09d8c597de045ba4ded48aeac4622eafb26aed7d3ae455c6c591d9e5987de76bab0e90d8bd6bd04b1f05404eb048b94db3 languageName: node linkType: hard -"@angular-eslint/utils@npm:21.4.0": - version: 21.4.0 - resolution: "@angular-eslint/utils@npm:21.4.0" +"@angular-eslint/utils@npm:22.0.0": + version: 22.0.0 + resolution: "@angular-eslint/utils@npm:22.0.0" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:21.4.0" + "@angular-eslint/bundled-angular-compiler": "npm:22.0.0" peerDependencies: - "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + "@typescript-eslint/utils": ^8.0.0 + eslint: ^9.0.0 || ^10.0.0 typescript: "*" - checksum: 10c0/94e3496ee5944a840dd0a154cd6c676a00db76ffde462a3597db0252e227e9b96f27d736cc2e7122906d1553f4d99ffb59751fd828be704bc75da970af919e7e + checksum: 10c0/bcd93599dd4cc053de748675609f3cf01b117e3ccafa22442df80b0902e08881e115201448de4309a0637c6d18e05eae1576b09f82c157dc8102035ac1ebac3d languageName: node linkType: hard -"@angular/animations@npm:21.2.16": - version: 21.2.16 - resolution: "@angular/animations@npm:21.2.16" +"@angular/animations@npm:22.0.0": + version: 22.0.0 + resolution: "@angular/animations@npm:22.0.0" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 21.2.16 - checksum: 10c0/b2c3d827c4901b4a0911839384febc3d618766f93d2e79bbec80ccd7ef9c614735e58cff0e5e8c071886c0c76961ad76a57df94ef1c5891d1bb688414c1607de + "@angular/core": 22.0.0 + checksum: 10c0/8561b4448cf5f2c9780d69c66629932c29b3447d1764ca46e1989e8e1aadf5f297d3f3a8b6479a849741fd27c19de14126723234e02692b201688140e0024ecc languageName: node linkType: hard -"@angular/build@npm:21.2.14, @angular/build@npm:^21.0.0": - version: 21.2.14 - resolution: "@angular/build@npm:21.2.14" +"@angular/build@npm:22.0.0, @angular/build@npm:^22.0.0": + version: 22.0.0 + resolution: "@angular/build@npm:22.0.0" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.2102.14" + "@angular-devkit/architect": "npm:0.2200.0" "@babel/core": "npm:7.29.0" "@babel/helper-annotate-as-pure": "npm:7.27.3" "@babel/helper-split-export-declaration": "npm:7.24.7" - "@inquirer/confirm": "npm:5.1.21" - "@vitejs/plugin-basic-ssl": "npm:2.1.4" - beasties: "npm:0.4.1" + "@inquirer/confirm": "npm:6.0.12" + "@vitejs/plugin-basic-ssl": "npm:2.3.0" + beasties: "npm:0.4.2" browserslist: "npm:^4.26.0" - esbuild: "npm:0.27.3" - https-proxy-agent: "npm:7.0.6" - istanbul-lib-instrument: "npm:6.0.3" + esbuild: "npm:0.28.0" + https-proxy-agent: "npm:9.0.0" jsonc-parser: "npm:3.3.1" - listr2: "npm:9.0.5" - lmdb: "npm:3.5.1" + listr2: "npm:10.2.1" + lmdb: "npm:3.5.4" magic-string: "npm:0.30.21" mrmime: "npm:2.0.1" - parse5-html-rewriting-stream: "npm:8.0.0" + parse5-html-rewriting-stream: "npm:8.0.1" picomatch: "npm:4.0.4" piscina: "npm:5.1.4" - rolldown: "npm:1.0.0-rc.4" - sass: "npm:1.97.3" + rollup: "npm:4.60.2" + sass: "npm:1.99.0" semver: "npm:7.7.4" source-map-support: "npm:0.5.21" - tinyglobby: "npm:0.2.15" - undici: "npm:7.24.4" + tinyglobby: "npm:0.2.16" vite: "npm:7.3.2" watchpack: "npm:2.5.1" peerDependencies: - "@angular/compiler": ^21.0.0 - "@angular/compiler-cli": ^21.0.0 - "@angular/core": ^21.0.0 - "@angular/localize": ^21.0.0 - "@angular/platform-browser": ^21.0.0 - "@angular/platform-server": ^21.0.0 - "@angular/service-worker": ^21.0.0 - "@angular/ssr": ^21.2.14 + "@angular/compiler": ^22.0.0 + "@angular/compiler-cli": ^22.0.0 + "@angular/core": ^22.0.0 + "@angular/localize": ^22.0.0 + "@angular/platform-browser": ^22.0.0 + "@angular/platform-server": ^22.0.0 + "@angular/service-worker": ^22.0.0 + "@angular/ssr": ^22.0.0 + istanbul-lib-instrument: ^6.0.0 karma: ^6.4.0 less: ^4.2.0 - ng-packagr: ^21.0.0 + ng-packagr: ^22.0.0 postcss: ^8.4.0 tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 tslib: ^2.3.0 - typescript: ">=5.9 <6.0" + typescript: ">=6.0 <6.1" vitest: ^4.0.8 dependenciesMeta: lmdb: @@ -620,6 +618,8 @@ __metadata: optional: true "@angular/ssr": optional: true + istanbul-lib-instrument: + optional: true karma: optional: true less: @@ -632,53 +632,53 @@ __metadata: optional: true vitest: optional: true - checksum: 10c0/bf9afb698dc8efe54f09c08456c8aec7e050f23d84123edda8a0be7165fa490e9bbe7d95ed7aeb6d6a32c4b0ef9b9928807d1647aae23f9a3f10ba5359cc56af + checksum: 10c0/8ccfa1d838ff2c2dd269a343b8136e5cdb850685b6a2115fb39fd1834c087fec86d7b24773b59e4fe500564fb101e63edad0782cee29723d21a5b14c29a88482 languageName: node linkType: hard -"@angular/cli@npm:21.2.14": - version: 21.2.14 - resolution: "@angular/cli@npm:21.2.14" - dependencies: - "@angular-devkit/architect": "npm:0.2102.14" - "@angular-devkit/core": "npm:21.2.14" - "@angular-devkit/schematics": "npm:21.2.14" - "@inquirer/prompts": "npm:7.10.1" - "@listr2/prompt-adapter-inquirer": "npm:3.0.5" - "@modelcontextprotocol/sdk": "npm:1.26.0" - "@schematics/angular": "npm:21.2.14" +"@angular/cli@npm:22, @angular/cli@npm:22.0.0": + version: 22.0.0 + resolution: "@angular/cli@npm:22.0.0" + dependencies: + "@angular-devkit/architect": "npm:0.2200.0" + "@angular-devkit/core": "npm:22.0.0" + "@angular-devkit/schematics": "npm:22.0.0" + "@inquirer/prompts": "npm:8.4.2" + "@listr2/prompt-adapter-inquirer": "npm:4.2.3" + "@modelcontextprotocol/sdk": "npm:1.29.0" + "@schematics/angular": "npm:22.0.0" "@yarnpkg/lockfile": "npm:1.1.0" - algoliasearch: "npm:5.48.1" + algoliasearch: "npm:5.52.0" ini: "npm:6.0.0" jsonc-parser: "npm:3.3.1" - listr2: "npm:9.0.5" + listr2: "npm:10.2.1" npm-package-arg: "npm:13.0.2" - pacote: "npm:21.3.1" - parse5-html-rewriting-stream: "npm:8.0.0" + pacote: "npm:21.5.0" + parse5-html-rewriting-stream: "npm:8.0.1" semver: "npm:7.7.4" yargs: "npm:18.0.0" - zod: "npm:4.3.6" + zod: "npm:4.4.2" bin: ng: bin/ng.js - checksum: 10c0/469682dc5543386339717dea7591e09fa47d9b5977d43c238f887bb2015c3f3282babdef851554db1eebd59e78bc7b8321acbea11e0fc1fd97641c1b69e59b9d + checksum: 10c0/83d0b629414e4de1df623bf455b684e0b30250ff276e3d34837d806607c0674101d182010b74062028d7557b582b4b4b1f9d0015f81b4c801ed3209a88db2ecb languageName: node linkType: hard -"@angular/common@npm:21.2.16": - version: 21.2.16 - resolution: "@angular/common@npm:21.2.16" +"@angular/common@npm:22.0.0": + version: 22.0.0 + resolution: "@angular/common@npm:22.0.0" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 21.2.16 + "@angular/core": 22.0.0 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/ca666a27381cc0cdaf951f71df9c62d7d9b12420b725545d232f07aa6e4f1bf9f7baa3b5cc863c6c55b81b630430fcff3c73629d4c9aa76b702fabb0755aa548 + checksum: 10c0/dd615a4f197ab415fed028ba906e8f898f9937206ce943b55eac80971ab3a3ceaeda8221386cc567093301cd53cb3ad552912993f0a474782a0636dc5ec83646 languageName: node linkType: hard -"@angular/compiler-cli@npm:21.2.16": - version: 21.2.16 - resolution: "@angular/compiler-cli@npm:21.2.16" +"@angular/compiler-cli@npm:22.0.0": + version: 22.0.0 + resolution: "@angular/compiler-cli@npm:22.0.0" dependencies: "@babel/core": "npm:7.29.0" "@jridgewell/sourcemap-codec": "npm:^1.4.14" @@ -689,34 +689,34 @@ __metadata: tslib: "npm:^2.3.0" yargs: "npm:^18.0.0" peerDependencies: - "@angular/compiler": 21.2.16 - typescript: ">=5.9 <6.1" + "@angular/compiler": 22.0.0 + typescript: ">=6.0 <6.1" peerDependenciesMeta: typescript: optional: true bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js - checksum: 10c0/f7413677fbd60e251b8b8ca6f6866c4ecba30eacaa7bae7c0f7eb84ee8ce45737c5a34311bdeb2daecba17927d04ccfc9bec2e9f96ccc9cae2b4a9c5593be6e6 + checksum: 10c0/8489db146aadacc93456c9f0233680a6ce5e587a5bac12e8dc5fd3d45c848d62e141810063139aa4bfd1cba46d467e8ce6f1daccd9fa753dd9a77603174da826 languageName: node linkType: hard -"@angular/compiler@npm:21.2.16": - version: 21.2.16 - resolution: "@angular/compiler@npm:21.2.16" +"@angular/compiler@npm:22.0.0": + version: 22.0.0 + resolution: "@angular/compiler@npm:22.0.0" dependencies: tslib: "npm:^2.3.0" - checksum: 10c0/071f5cd229812eb149e24bb890bccf65db99e59814126e0fe81020bbc3990ce53efed0f6f6ec8f34bf1d89eda8bbf89dd2266eec226c3c95125a81387280d41c + checksum: 10c0/1bbb5e8691ccaba66abff0e7ef0aa226f44fc1e03b0d967ba4541fd6deb94924a4794e0c3c0358bb6324a494a54fd1692645827b223f76438678068a9690b228 languageName: node linkType: hard -"@angular/core@npm:21.2.16": - version: 21.2.16 - resolution: "@angular/core@npm:21.2.16" +"@angular/core@npm:22.0.0": + version: 22.0.0 + resolution: "@angular/core@npm:22.0.0" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/compiler": 21.2.16 + "@angular/compiler": 22.0.0 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 || ~0.16.0 peerDependenciesMeta: @@ -724,73 +724,74 @@ __metadata: optional: true zone.js: optional: true - checksum: 10c0/3f594abb767f2e958fa2379de89f539fef3b25ac2cd944f14e98a240cae29cdc368958ec0b0bb0e8652d46ae1ee51745b2a8943279e11a6b2735d8fb3b020baa + checksum: 10c0/0e8bf7ff2491f19e75dfb7166a541ca2a3891182ac2fa35f3e99b52fa041c9751dca15249255ed04115e1d39a472857f9bd68b08ba3031db0156c643c795e748 languageName: node linkType: hard -"@angular/forms@npm:21.2.16": - version: 21.2.16 - resolution: "@angular/forms@npm:21.2.16" +"@angular/forms@npm:22.0.0": + version: 22.0.0 + resolution: "@angular/forms@npm:22.0.0" dependencies: "@standard-schema/spec": "npm:^1.0.0" tslib: "npm:^2.3.0" + zod: "npm:^4.0.10" peerDependencies: - "@angular/common": 21.2.16 - "@angular/core": 21.2.16 - "@angular/platform-browser": 21.2.16 + "@angular/common": 22.0.0 + "@angular/core": 22.0.0 + "@angular/platform-browser": 22.0.0 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/cfcd061cf831c2b722fec90dc45255458658ce336edee14ac6bdb9867b3c0b1ce15168b22384d44e596adfdc17f2f53ca9bec21c62635859b19e7e8b3a123311 + checksum: 10c0/33127bffde94c9f74c9dc5516e217908dc9d55c0d4aa55f6c941ab7546ea6e26a2565259bb5356849183c071233a466e790c803071f95b5d010ba06551c5d14b languageName: node linkType: hard -"@angular/language-service@npm:21.2.16": - version: 21.2.16 - resolution: "@angular/language-service@npm:21.2.16" - checksum: 10c0/55db9d319648dfde3dc9651c4d200a764f93e4df4226f18d76c0bcfcaeb7b701420e945eb0a6c6546a5f7ab30424136b905fb6bbd0364778267028aa93682ad6 +"@angular/language-service@npm:22.0.0": + version: 22.0.0 + resolution: "@angular/language-service@npm:22.0.0" + checksum: 10c0/44bd2b712985ebc667c5a8d08661f398d108fa5836af24ecb576815eaeea90c042b7fc30b001b09ab431450f7756b7579d80999b3247d722460cf00ed45ecf5c languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:21.2.16": - version: 21.2.16 - resolution: "@angular/platform-browser-dynamic@npm:21.2.16" +"@angular/platform-browser-dynamic@npm:22.0.0": + version: 22.0.0 + resolution: "@angular/platform-browser-dynamic@npm:22.0.0" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 21.2.16 - "@angular/compiler": 21.2.16 - "@angular/core": 21.2.16 - "@angular/platform-browser": 21.2.16 - checksum: 10c0/493299c9c7b5c8d587537077205d508326f77a6a4a095b125b4d7bf7696c011bcab6b004ea1baffc3ee4acb87aec854555a2d74bc72ac03b5e23bce666cb0332 + "@angular/common": 22.0.0 + "@angular/compiler": 22.0.0 + "@angular/core": 22.0.0 + "@angular/platform-browser": 22.0.0 + checksum: 10c0/2b9061ab0a75652967a97467d87fc0e06ca5cfefca5d17c68a65affe084f68cfce80456bf73a3952693e3a93cc34974d7ba37a9825e16e4c3e39fcbb0cf48d53 languageName: node linkType: hard -"@angular/platform-browser@npm:21.2.16": - version: 21.2.16 - resolution: "@angular/platform-browser@npm:21.2.16" +"@angular/platform-browser@npm:22.0.0": + version: 22.0.0 + resolution: "@angular/platform-browser@npm:22.0.0" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 21.2.16 - "@angular/common": 21.2.16 - "@angular/core": 21.2.16 + "@angular/animations": 22.0.0 + "@angular/common": 22.0.0 + "@angular/core": 22.0.0 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/37c13bd1c8c3f210fb24f60ac1e8d44d6a6447748e5c4fb73bf0abf0546f80aaed0b4b6b57d6e5cf130d65b4ecd808a736ef29805744699f2b720fced5cdab69 + checksum: 10c0/ece1edec45c8d188e999603d07ae8d36b29718be4cec3071f13711b2fa4ed75762a8d48a093da05e04f9fec66ead09817e156e5fe9a4388d80be362555963d5b languageName: node linkType: hard -"@angular/router@npm:21.2.16": - version: 21.2.16 - resolution: "@angular/router@npm:21.2.16" +"@angular/router@npm:22.0.0": + version: 22.0.0 + resolution: "@angular/router@npm:22.0.0" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 21.2.16 - "@angular/core": 21.2.16 - "@angular/platform-browser": 21.2.16 + "@angular/common": 22.0.0 + "@angular/core": 22.0.0 + "@angular/platform-browser": 22.0.0 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/340aecb000e7ae76385b90f928ef7eb56764cecdf15f772195b7682de9906414fd3c053b81c7d5be5a5c6edc4d66a425f77ad2720f97107e50b77536ea3ef889 + checksum: 10c0/571b19b1034615d98180072c3b6b39addcdf1107cfc7da0c35cc3d82cd0a3bf88329c96a572ffc566b6160c304ce4b874f82c61a087156d534cbc0da5ef14788 languageName: node linkType: hard @@ -847,57 +848,21 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/code-frame@npm:7.27.1" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.27.1" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.1.1" - checksum: 10c0/5dd9a18baa5fce4741ba729acc3a3272c49c25cb8736c4b18e113099520e7ef7b545a4096a26d600e4416157e63e87d66db46aa3fbf0a5f2286da2705c12da00 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/code-frame@npm:7.28.6" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.28.5" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.1.1" - checksum: 10c0/ed5d57f99455e3b1c23e75ebb8430c6b9800b4ecd0121b4348b97cecb65406a47778d6db61f0d538a4958bb01b4b277e90348a68d39bd3beff1d7c940ed6dd66 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/code-frame@npm:7.29.0" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.27.1, @babel/code-frame@npm:^7.29.0, @babel/code-frame@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/code-frame@npm:7.29.7" dependencies: - "@babel/helper-validator-identifier": "npm:^7.28.5" + "@babel/helper-validator-identifier": "npm:^7.29.7" js-tokens: "npm:^4.0.0" picocolors: "npm:^1.1.1" - checksum: 10c0/d34cc504e7765dfb576a663d97067afb614525806b5cad1a5cc1a7183b916fec8ff57fa233585e3926fd5a9e6b31aae6df91aa81ae9775fb7a28f658d3346f0d - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.27.2, @babel/compat-data@npm:^7.27.7": - version: 7.28.5 - resolution: "@babel/compat-data@npm:7.28.5" - checksum: 10c0/702a25de73087b0eba325c1d10979eed7c9b6662677386ba7b5aa6eace0fc0676f78343bae080a0176ae26f58bd5535d73b9d0fbb547fef377692e8b249353a7 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/compat-data@npm:7.28.6" - checksum: 10c0/2d047431041281eaf33e9943d1a269d3374dbc9b498cafe6a18f5ee9aee7bb96f7f6cac0304eab4d13c41fc4db00fe4ca16c7aa44469ca6a211b8b6343b78fc4 + checksum: 10c0/169fc2080169a40c1760155eaaaf739bcb882df0bec76a83adbda5493645bc17270a3434b8848c494b1933e96fe1d147370001e3cda09a39f43ae30f08ef2069 languageName: node linkType: hard -"@babel/compat-data@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/compat-data@npm:7.29.0" - checksum: 10c0/08f348554989d23aa801bf1405aa34b15e841c0d52d79da7e524285c77a5f9d298e70e11d91cc578d8e2c9542efc586d50c5f5cf8e1915b254a9dcf786913a94 +"@babel/compat-data@npm:^7.28.6, @babel/compat-data@npm:^7.29.3, @babel/compat-data@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/compat-data@npm:7.29.7" + checksum: 10c0/47913f05e08a45a1c9df38c02b4b49e391005085b489432647a1abe112e5d9c75e3be8ea5972b7f6da4ec5d1339922ceb9ea02b8a25d4ed1cb8636e5261f344e languageName: node linkType: hard @@ -925,29 +890,29 @@ __metadata: linkType: hard "@babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.27.4": - version: 7.28.5 - resolution: "@babel/core@npm:7.28.5" - dependencies: - "@babel/code-frame": "npm:^7.27.1" - "@babel/generator": "npm:^7.28.5" - "@babel/helper-compilation-targets": "npm:^7.27.2" - "@babel/helper-module-transforms": "npm:^7.28.3" - "@babel/helpers": "npm:^7.28.4" - "@babel/parser": "npm:^7.28.5" - "@babel/template": "npm:^7.27.2" - "@babel/traverse": "npm:^7.28.5" - "@babel/types": "npm:^7.28.5" + version: 7.29.7 + resolution: "@babel/core@npm:7.29.7" + dependencies: + "@babel/code-frame": "npm:^7.29.7" + "@babel/generator": "npm:^7.29.7" + "@babel/helper-compilation-targets": "npm:^7.29.7" + "@babel/helper-module-transforms": "npm:^7.29.7" + "@babel/helpers": "npm:^7.29.7" + "@babel/parser": "npm:^7.29.7" + "@babel/template": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" "@jridgewell/remapping": "npm:^2.3.5" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/535f82238027621da6bdffbdbe896ebad3558b311d6f8abc680637a9859b96edbf929ab010757055381570b29cf66c4a295b5618318d27a4273c0e2033925e72 + checksum: 10c0/112fb09c24de7a1de64d1de2c31fe65c4e6af4cb2fb6e6d99ea5373e6fc51e75b88581c0efae4c4c68f119a02a988c7106e95011a41530a2fb8ed793c7eaa07b languageName: node linkType: hard -"@babel/generator@npm:7.29.1, @babel/generator@npm:^7.29.0": +"@babel/generator@npm:7.29.1": version: 7.29.1 resolution: "@babel/generator@npm:7.29.1" dependencies: @@ -960,33 +925,20 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.27.5, @babel/generator@npm:^7.28.5": - version: 7.28.5 - resolution: "@babel/generator@npm:7.28.5" - dependencies: - "@babel/parser": "npm:^7.28.5" - "@babel/types": "npm:^7.28.5" - "@jridgewell/gen-mapping": "npm:^0.3.12" - "@jridgewell/trace-mapping": "npm:^0.3.28" - jsesc: "npm:^3.0.2" - checksum: 10c0/9f219fe1d5431b6919f1a5c60db8d5d34fe546c0d8f5a8511b32f847569234ffc8032beb9e7404649a143f54e15224ecb53a3d11b6bb85c3203e573d91fca752 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/generator@npm:7.28.6" +"@babel/generator@npm:^7.27.5, @babel/generator@npm:^7.29.0, @babel/generator@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/generator@npm:7.29.7" dependencies: - "@babel/parser": "npm:^7.28.6" - "@babel/types": "npm:^7.28.6" + "@babel/parser": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" "@jridgewell/gen-mapping": "npm:^0.3.12" "@jridgewell/trace-mapping": "npm:^0.3.28" jsesc: "npm:^3.0.2" - checksum: 10c0/162fa358484a9a18e8da1235d998f10ea77c63bab408c8d3e327d5833f120631a77ff022c5ed1d838ee00523f8bb75df1f08196d3657d0bca9f2cfeb8503cc12 + checksum: 10c0/9bf72b01b5bd0ea5b1288a0e37dbd360bff2f2b1ce73342c0d40fb3db2ec3dc004ada5ffa925c5e12939a416eed59e600d562b8ecd938ce0d27dfd0eb6c6c2b7 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:7.27.3, @babel/helper-annotate-as-pure@npm:^7.27.1, @babel/helper-annotate-as-pure@npm:^7.27.3": +"@babel/helper-annotate-as-pure@npm:7.27.3": version: 7.27.3 resolution: "@babel/helper-annotate-as-pure@npm:7.27.3" dependencies: @@ -995,80 +947,61 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.27.2": - version: 7.27.2 - resolution: "@babel/helper-compilation-targets@npm:7.27.2" +"@babel/helper-annotate-as-pure@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.29.7" dependencies: - "@babel/compat-data": "npm:^7.27.2" - "@babel/helper-validator-option": "npm:^7.27.1" - browserslist: "npm:^4.24.0" - lru-cache: "npm:^5.1.1" - semver: "npm:^6.3.1" - checksum: 10c0/f338fa00dcfea931804a7c55d1a1c81b6f0a09787e528ec580d5c21b3ecb3913f6cb0f361368973ce953b824d910d3ac3e8a8ee15192710d3563826447193ad1 + "@babel/types": "npm:^7.29.7" + checksum: 10c0/c56536b52d17632d89d49db2063ed6102f0e3bbadf6a0ccb74e6599d6a77173b644c7fe8c3ef17c7a162709d55b75ee5145ef6db917d16ba7f375fbffcf2e942 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/helper-compilation-targets@npm:7.28.6" +"@babel/helper-compilation-targets@npm:^7.28.6, @babel/helper-compilation-targets@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-compilation-targets@npm:7.29.7" dependencies: - "@babel/compat-data": "npm:^7.28.6" - "@babel/helper-validator-option": "npm:^7.27.1" + "@babel/compat-data": "npm:^7.29.7" + "@babel/helper-validator-option": "npm:^7.29.7" browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/3fcdf3b1b857a1578e99d20508859dbd3f22f3c87b8a0f3dc540627b4be539bae7f6e61e49d931542fe5b557545347272bbdacd7f58a5c77025a18b745593a50 + checksum: 10c0/4c15fd4c69a0a7047799a28a88460c19cede0a0ee8af994ea169114986f4af48b92c7393a4a3fee0456c11a656eece3448a6ed06354453d6c27cccf17195453b languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/helper-create-class-features-plugin@npm:7.28.6" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.3" - "@babel/helper-member-expression-to-functions": "npm:^7.28.5" - "@babel/helper-optimise-call-expression": "npm:^7.27.1" - "@babel/helper-replace-supers": "npm:^7.28.6" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" - "@babel/traverse": "npm:^7.28.6" +"@babel/helper-create-class-features-plugin@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.29.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.29.7" + "@babel/helper-member-expression-to-functions": "npm:^7.29.7" + "@babel/helper-optimise-call-expression": "npm:^7.29.7" + "@babel/helper-replace-supers": "npm:^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/0b62b46717891f4366006b88c9b7f277980d4f578c4c3789b7a4f5a2e09e121de4cda9a414ab403986745cd3ad1af3fe2d948c9f78ab80d4dc085afc9602af50 + checksum: 10c0/75f34905b5e708b473f1e9b33e07b2fcc8f4c60676df8bc74541bb91c77f387c32a948dd04d5071e469ba454d72d0a872e3ace40fbb1d1e7aaa8569efcf09ed4 languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.27.1, @babel/helper-create-regexp-features-plugin@npm:^7.28.5": - version: 7.28.5 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.28.5" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.29.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.3" + "@babel/helper-annotate-as-pure": "npm:^7.29.7" regexpu-core: "npm:^6.3.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/7af3d604cadecdb2b0d2cedd696507f02a53a58be0523281c2d6766211443b55161dde1e6c0d96ab16ddfd82a2607a2f792390caa24797e9733631f8aa86859f - languageName: node - linkType: hard - -"@babel/helper-define-polyfill-provider@npm:^0.6.5": - version: 0.6.5 - resolution: "@babel/helper-define-polyfill-provider@npm:0.6.5" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.27.2" - "@babel/helper-plugin-utils": "npm:^7.27.1" - debug: "npm:^4.4.1" - lodash.debounce: "npm:^4.0.8" - resolve: "npm:^1.22.10" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/4886a068d9ca1e70af395340656a9dda33c50502c67eed39ff6451785f370bdfc6e57095b90cb92678adcd4a111ca60909af53d3a741120719c5604346ae409e + checksum: 10c0/c9008c5aafe3b4707964394179cefcb1624d3917b911f308b49719ab8861bc403d82a8f5e046906a18de7082ca393ebae335218c74f52c3fcd81e442c4ae0ce8 languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.6.6": - version: 0.6.6 - resolution: "@babel/helper-define-polyfill-provider@npm:0.6.6" +"@babel/helper-define-polyfill-provider@npm:^0.6.5, @babel/helper-define-polyfill-provider@npm:^0.6.8": + version: 0.6.8 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.8" dependencies: "@babel/helper-compilation-targets": "npm:^7.28.6" "@babel/helper-plugin-utils": "npm:^7.28.6" @@ -1077,142 +1010,99 @@ __metadata: resolve: "npm:^1.22.11" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/1293d6f54d4ebb10c9e947e54de1aaa23b00233e19aca9790072f1893bf143af01442613f7b413300be7016d8e41b550af77acab28e7fa5fb796b2a175c528a1 - languageName: node - linkType: hard - -"@babel/helper-globals@npm:^7.28.0": - version: 7.28.0 - resolution: "@babel/helper-globals@npm:7.28.0" - checksum: 10c0/5a0cd0c0e8c764b5f27f2095e4243e8af6fa145daea2b41b53c0c1414fe6ff139e3640f4e2207ae2b3d2153a1abd346f901c26c290ee7cb3881dd922d4ee9232 - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.27.1, @babel/helper-member-expression-to-functions@npm:^7.28.5": - version: 7.28.5 - resolution: "@babel/helper-member-expression-to-functions@npm:7.28.5" - dependencies: - "@babel/traverse": "npm:^7.28.5" - "@babel/types": "npm:^7.28.5" - checksum: 10c0/4e6e05fbf4dffd0bc3e55e28fcaab008850be6de5a7013994ce874ec2beb90619cda4744b11607a60f8aae0227694502908add6188ceb1b5223596e765b44814 + checksum: 10c0/306a169f2cb285f368578219ef18ea9702860d3d02d64334f8d45ea38648be0b9e1edad8c8f732fa34bb4206ccbb9883c395570fd57ab7bbcf293bc5964c5b3a languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-module-imports@npm:7.27.1" - dependencies: - "@babel/traverse": "npm:^7.27.1" - "@babel/types": "npm:^7.27.1" - checksum: 10c0/e00aace096e4e29290ff8648455c2bc4ed982f0d61dbf2db1b5e750b9b98f318bf5788d75a4f974c151bd318fd549e81dbcab595f46b14b81c12eda3023f51e8 +"@babel/helper-globals@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-globals@npm:7.29.7" + checksum: 10c0/f38417c40b1129a1b2b519ca961b9040c8827d1444fd74068702286b91b77089431dc76b6b9d5c1496e5da2a4f3ad329c6946e688ba3fa0d1d0b3d2b4f34f36a languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/helper-module-imports@npm:7.28.6" +"@babel/helper-member-expression-to-functions@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-member-expression-to-functions@npm:7.29.7" dependencies: - "@babel/traverse": "npm:^7.28.6" - "@babel/types": "npm:^7.28.6" - checksum: 10c0/b49d8d8f204d9dbfd5ac70c54e533e5269afb3cea966a9d976722b13e9922cc773a653405f53c89acb247d5aebdae4681d631a3ae3df77ec046b58da76eda2ac + "@babel/traverse": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" + checksum: 10c0/eef7940ce0797208854a5af1049a98fee9abbffb5c619640c69ff5a555f8e3552295bb18756490b02bc6af7df8c1babcb83f12203aac2deb9dfecfc78846e12d languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.3": - version: 7.28.3 - resolution: "@babel/helper-module-transforms@npm:7.28.3" +"@babel/helper-module-imports@npm:^7.28.6, @babel/helper-module-imports@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-module-imports@npm:7.29.7" dependencies: - "@babel/helper-module-imports": "npm:^7.27.1" - "@babel/helper-validator-identifier": "npm:^7.27.1" - "@babel/traverse": "npm:^7.28.3" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/549be62515a6d50cd4cfefcab1b005c47f89bd9135a22d602ee6a5e3a01f27571868ada10b75b033569f24dc4a2bb8d04bfa05ee75c16da7ade2d0db1437fcdb + "@babel/traverse": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" + checksum: 10c0/6adf60d97356027413342a092f818d9678c4f5caff716a33e3284b5ae14e47a9e88059d421dde4ee4894691260039a12602c0e7becadc175602194b40dfa345d languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/helper-module-transforms@npm:7.28.6" +"@babel/helper-module-transforms@npm:^7.28.6, @babel/helper-module-transforms@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-module-transforms@npm:7.29.7" dependencies: - "@babel/helper-module-imports": "npm:^7.28.6" - "@babel/helper-validator-identifier": "npm:^7.28.5" - "@babel/traverse": "npm:^7.28.6" + "@babel/helper-module-imports": "npm:^7.29.7" + "@babel/helper-validator-identifier": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/6f03e14fc30b287ce0b839474b5f271e72837d0cafe6b172d759184d998fbee3903a035e81e07c2c596449e504f453463d58baa65b6f40a37ded5bec74620b2b + checksum: 10c0/ee5a2172c24a42be696836f4b0d947489c9729d8adf5821885cf77d1ad5333e3c447368e9a71f67df1099570490553dccf9f888ef0a92a48aa63cb086bd8c7e1 languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-optimise-call-expression@npm:7.27.1" +"@babel/helper-optimise-call-expression@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-optimise-call-expression@npm:7.29.7" dependencies: - "@babel/types": "npm:^7.27.1" - checksum: 10c0/6b861e7fcf6031b9c9fc2de3cd6c005e94a459d6caf3621d93346b52774925800ca29d4f64595a5ceacf4d161eb0d27649ae385110ed69491d9776686fa488e6 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.27.1, @babel/helper-plugin-utils@npm:^7.8.0": - version: 7.27.1 - resolution: "@babel/helper-plugin-utils@npm:7.27.1" - checksum: 10c0/94cf22c81a0c11a09b197b41ab488d416ff62254ce13c57e62912c85700dc2e99e555225787a4099ff6bae7a1812d622c80fbaeda824b79baa10a6c5ac4cf69b - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/helper-plugin-utils@npm:7.28.6" - checksum: 10c0/3f5f8acc152fdbb69a84b8624145ff4f9b9f6e776cb989f9f968f8606eb7185c5c3cfcf3ba08534e37e1e0e1c118ac67080610333f56baa4f7376c99b5f1143d + "@babel/types": "npm:^7.29.7" + checksum: 10c0/fd0244b9bfbb487db02d59aa2703c6991d654ea5f3f39d912682842bdca2e87b5ae8643b0ce8069bf5fbee39d1aa9db7abefeb5e6ba1aa650dca12777cf5b7e2 languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-remap-async-to-generator@npm:7.27.1" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.1" - "@babel/helper-wrap-function": "npm:^7.27.1" - "@babel/traverse": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/5ba6258f4bb57c7c9fa76b55f416b2d18c867b48c1af4f9f2f7cd7cc933fe6da7514811d08ceb4972f1493be46f4b69c40282b811d1397403febae13c2ec57b5 +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.28.6, @babel/helper-plugin-utils@npm:^7.29.7, @babel/helper-plugin-utils@npm:^7.8.0": + version: 7.29.7 + resolution: "@babel/helper-plugin-utils@npm:7.29.7" + checksum: 10c0/380477a06133274a2759f9355929cb60a95e8b8fee624a1ae1fa349e1d1645b89daca456f72833f6d1062bffa12ee4271c5bf0cc5a61c0166cdc24c7591e2408 languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-replace-supers@npm:7.27.1" +"@babel/helper-remap-async-to-generator@npm:^7.27.1, @babel/helper-remap-async-to-generator@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-remap-async-to-generator@npm:7.29.7" dependencies: - "@babel/helper-member-expression-to-functions": "npm:^7.27.1" - "@babel/helper-optimise-call-expression": "npm:^7.27.1" - "@babel/traverse": "npm:^7.27.1" + "@babel/helper-annotate-as-pure": "npm:^7.29.7" + "@babel/helper-wrap-function": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/4f2eaaf5fcc196580221a7ccd0f8873447b5d52745ad4096418f6101a1d2e712e9f93722c9a32bc9769a1dc197e001f60d6f5438d4dfde4b9c6a9e4df719354c + checksum: 10c0/d71a4f2c7e4523568b1fbeb4d85823bda7ebcd48263b2862ee8194b0a647b612e70d6a64472e0842fc7e557a16e9fa5d3c032af5c1308a342e2a3b49a87d4833 languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/helper-replace-supers@npm:7.28.6" +"@babel/helper-replace-supers@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-replace-supers@npm:7.29.7" dependencies: - "@babel/helper-member-expression-to-functions": "npm:^7.28.5" - "@babel/helper-optimise-call-expression": "npm:^7.27.1" - "@babel/traverse": "npm:^7.28.6" + "@babel/helper-member-expression-to-functions": "npm:^7.29.7" + "@babel/helper-optimise-call-expression": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/04663c6389551b99b8c3e7ba4e2638b8ca2a156418c26771516124c53083aa8e74b6a45abe5dd46360af79709a0e9c6b72c076d0eab9efecdd5aaf836e79d8d5 + checksum: 10c0/1c7ae37797f226e965ab85f6affa53d25a10c169c604a4daeb36f9df09e673471e6522f631c13761cf9fbafeca2ea14c241dea8d723a51039d561beb01d86ac4 languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.27.1" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.29.7" dependencies: - "@babel/traverse": "npm:^7.27.1" - "@babel/types": "npm:^7.27.1" - checksum: 10c0/f625013bcdea422c470223a2614e90d2c1cc9d832e97f32ca1b4f82b34bb4aa67c3904cb4b116375d3b5b753acfb3951ed50835a1e832e7225295c7b0c24dff7 + "@babel/traverse": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" + checksum: 10c0/8c59493621487fc491f27adfc200af82a6aca3b9a5511e4e6050f8716593b4b243472cb56c8d2016e828b7ae12d605a819205aa8600ca08ee291dcd58d65c832 languageName: node linkType: hard @@ -1225,147 +1115,127 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-string-parser@npm:7.27.1" - checksum: 10c0/8bda3448e07b5583727c103560bcf9c4c24b3c1051a4c516d4050ef69df37bb9a4734a585fe12725b8c2763de0a265aa1e909b485a4e3270b7cfd3e4dbe4b602 - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.27.1, @babel/helper-validator-identifier@npm:^7.28.5": - version: 7.28.5 - resolution: "@babel/helper-validator-identifier@npm:7.28.5" - checksum: 10c0/42aaebed91f739a41f3d80b72752d1f95fd7c72394e8e4bd7cdd88817e0774d80a432451bcba17c2c642c257c483bf1d409dd4548883429ea9493a3bc4ab0847 - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-validator-option@npm:7.27.1" - checksum: 10c0/6fec5f006eba40001a20f26b1ef5dbbda377b7b68c8ad518c05baa9af3f396e780bdfded24c4eef95d14bb7b8fd56192a6ed38d5d439b97d10efc5f1a191d148 +"@babel/helper-string-parser@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-string-parser@npm:7.29.7" + checksum: 10c0/194bc0f1716e396d5ffde56ad6119745fb9557662c98611590e5e454906783a4ccb21ce93056b8eb69a4909044834e45d96e50ac695bbe9e3221648fe033c06c languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.27.1": - version: 7.28.3 - resolution: "@babel/helper-wrap-function@npm:7.28.3" - dependencies: - "@babel/template": "npm:^7.27.2" - "@babel/traverse": "npm:^7.28.3" - "@babel/types": "npm:^7.28.2" - checksum: 10c0/aecb8a457efd893dc3c6378ab9221d06197573fb2fe64afabe7923e7732607d59b07f4c5603909877d69bea3ee87025f4b1d8e4f0403ae0a07b14e9ce0bf355a +"@babel/helper-validator-identifier@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-validator-identifier@npm:7.29.7" + checksum: 10c0/4795354e7ae0dcafa72de1cd04ec51252dc1498517170beaf019e03effc5b7bf13c6b21a3949a77e07b8125be7f106ed1131350d8ebd4566ae874094a726d62b languageName: node linkType: hard -"@babel/helpers@npm:^7.28.4": - version: 7.28.4 - resolution: "@babel/helpers@npm:7.28.4" - dependencies: - "@babel/template": "npm:^7.27.2" - "@babel/types": "npm:^7.28.4" - checksum: 10c0/aaa5fb8098926dfed5f223adf2c5e4c7fbba4b911b73dfec2d7d3083f8ba694d201a206db673da2d9b3ae8c01793e795767654558c450c8c14b4c2175b4fcb44 +"@babel/helper-validator-option@npm:^7.27.1, @babel/helper-validator-option@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-validator-option@npm:7.29.7" + checksum: 10c0/d2a06c6d0ac40ba4a2f219fc2cab249c7a94bacdb2686273b7f9598571c908809b48468ff588915a346e6cc7296f60b581023d1d498b747fed06f779d335c2cc languageName: node linkType: hard -"@babel/helpers@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/helpers@npm:7.28.6" +"@babel/helper-wrap-function@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helper-wrap-function@npm:7.29.7" dependencies: - "@babel/template": "npm:^7.28.6" - "@babel/types": "npm:^7.28.6" - checksum: 10c0/c4a779c66396bb0cf619402d92f1610601ff3832db2d3b86b9c9dd10983bf79502270e97ac6d5280cea1b1a37de2f06ecbac561bd2271545270407fbe64027cb + "@babel/template": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" + checksum: 10c0/d765b341863ede049eb6923b9c20fc79fb6c64995a906b60a70c22fbffb21eef5d5a5cf15948c843047d31e8c902a85fa94ccfe5d30d0631a7b1e40e4d667c70 languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.5": - version: 7.28.5 - resolution: "@babel/parser@npm:7.28.5" +"@babel/helpers@npm:^7.28.6, @babel/helpers@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/helpers@npm:7.29.7" dependencies: - "@babel/types": "npm:^7.28.5" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/5bbe48bf2c79594ac02b490a41ffde7ef5aa22a9a88ad6bcc78432a6ba8a9d638d531d868bd1f104633f1f6bba9905746e15185b8276a3756c42b765d131b1ef + "@babel/template": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" + checksum: 10c0/218e8d10953647c9f44775f5a022b227a182674853b5ea8631889deb7e1a3e4bc870388aaecf59bb8bd92a87f9a96220ed3f70a35bffec6bcf9169ecb67891ac languageName: node linkType: hard -"@babel/parser@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/parser@npm:7.28.6" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.29.0, @babel/parser@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/parser@npm:7.29.7" dependencies: - "@babel/types": "npm:^7.28.6" + "@babel/types": "npm:^7.29.7" bin: parser: ./bin/babel-parser.js - checksum: 10c0/d6bfe8aa8e067ef58909e9905496157312372ca65d8d2a4f2b40afbea48d59250163755bba8ae626a615da53d192b084bcfc8c9dad8b01e315b96967600de581 + checksum: 10c0/65133038f80b54a714d6027cb77cee3f9a6b5c4c6842ce674301e13947cbcbfa8055e63acaf1b84c085d34226a14425b2c2b97b829e0e226d2e8f1299942a51d languageName: node linkType: hard -"@babel/parser@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/parser@npm:7.29.0" +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.28.5": + version: 7.29.7 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.29.7" dependencies: - "@babel/types": "npm:^7.29.0" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/333b2aa761264b91577a74bee86141ef733f9f9f6d4fc52548e4847dc35dfbf821f58c46832c637bfa761a6d9909d6a68f7d1ed59e17e4ffbb958dc510c17b62 + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/6877a4112797885bcf90f361131e2b63dcbbcb3e334c984c527e1e380eb7e81785219dcf99f1291eef4edc83907cb582204120d97d777807c252f9eb31fd2e6e languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.28.5": - version: 7.28.5 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.28.5" +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.27.1": + version: 7.29.7 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/traverse": "npm:^7.28.5" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/844b7c7e9eec6d858262b2f3d5af75d3a6bbd9d3ecc740d95271fbdd84985731674536f5d8ac98f2dc0e8872698b516e406636e4d0cb04b50afe471172095a53 + checksum: 10c0/557565fc052b9ab306802b19b9cfc89be9aa7aa709447698dbb5080db356048d4c3dd94ccad8bcb4d5ef3c4002947a340d1c326acde0d95950c3773472f46282 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.27.1" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.27.1": + version: 7.29.7 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/2cd7a55a856e5e59bbd9484247c092a41e0d9f966778e7019da324d9e0928892d26afc4fbb2ac3d76a3c5a631cd3cf0d72dd2653b44f634f6c663b9e6f80aacd + checksum: 10c0/5b949826cfadd9d90c3cfba01cc917f218ba2da05b2a2dc4781bd3805c150eb858ba52d2f3972c8ae6cc887257ac4d114fdda6d695a30510137abae5c76bf054 languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.27.1" +"@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@npm:^7.29.3": + version: 7.29.7 + resolution: "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/cf29835498c4a25bd470908528919729a0799b2ec94e89004929a5532c94a5e4b1a49bc5d6673a22e5afe05d08465873e14ee3b28c42eb3db489cdf5ca47c680 + checksum: 10c0/727a464410623fb47d47a2803562b8bb9fb4b915de94cc51bd3149937522b85e6a5d19c71207ac5269c51684f282a918785e78e359435d1f4ac889dc4f258855 languageName: node linkType: hard "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" - "@babel/plugin-transform-optional-chaining": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.13.0 - checksum: 10c0/eddcd056f76e198868cbff883eb148acfade8f0890973ab545295df0c08e39573a72e65372bcc0b0bfadba1b043fe1aea6b0907d0b4889453ac154c404194ebc + checksum: 10c0/9ccc704d1382771b2a6a4f1281b2f63d7be47fb0ebc9890e2f820e2a645b77aaf207ec8e6136854bb059715eac5fd7cab436b054c3b3b4a472b9fd0c73ee98b3 languageName: node linkType: hard "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" - "@babel/traverse": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/f1a9194e8d1742081def7af748e9249eb5082c25d0ced292720a1f054895f99041c764a05f45af669a2c8898aeb79266058aedb0d3e1038963ad49be8288918a + checksum: 10c0/547bddf129eed825c0a3c706828c579bfedd0fa850054ded515e90af91fa1a643bb88461e49b59946d95737622766ae0db2c04346ee319e06e49852c270a2c2f languageName: node linkType: hard @@ -1423,35 +1293,24 @@ __metadata: linkType: hard "@babel/plugin-syntax-import-assertions@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.28.6" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/f3b8bdccb9b4d3e3b9226684ca518e055399d05579da97dfe0160a38d65198cfe7dce809e73179d6463a863a040f980de32425a876d88efe4eda933d0d95982c - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-attributes@npm:^7.24.7": - version: 7.27.1 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e66f7a761b8360419bbb93ab67d87c8a97465ef4637a985ff682ce7ba6918b34b29d81190204cf908d0933058ee7b42737423cd8a999546c21b3aabad4affa9a + checksum: 10c0/d5628692a0ba2fadf469aaef20f4f0a216259eeb92d31fc23d48c9d201696099691f0dfaa895c657f9c591a7fab94f62545f20196326af1812ebab72cf34e9fe languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.28.6" +"@babel/plugin-syntax-import-attributes@npm:^7.24.7, @babel/plugin-syntax-import-attributes@npm:^7.28.6": + version: 7.29.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1be160e2c426faa74e5be2e30e39e8d0d8c543063bd5d06cd804f8751b8fbcb82ce824ca7f9ce4b09c003693f6c06a11ce503b7e34d85e1a259631e4c3f72ad2 + checksum: 10c0/b9a47e869d8c06676297069895ae34e2bd244ec4c3bdf15002f1e69aed32eef0361044af22a43f271b8de5e23a40534fe6a74a63e7ab98e3d60a74b322444b49 languageName: node linkType: hard @@ -1478,13 +1337,13 @@ __metadata: linkType: hard "@babel/plugin-syntax-jsx@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-syntax-jsx@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-syntax-jsx@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/bc5afe6a458d5f0492c02a54ad98c5756a0c13bd6d20609aae65acd560a9e141b0876da5f358dce34ea136f271c1016df58b461184d7ae9c4321e0f98588bc84 + checksum: 10c0/1736000de183538ba8eef34520105508860e48b0c763254ba9158af5e814ed8bbceeedbb4281fbda33de787ae5b3870e92f60c6ae7131e7d322e451d57387896 languageName: node linkType: hard @@ -1577,13 +1436,13 @@ __metadata: linkType: hard "@babel/plugin-syntax-typescript@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-syntax-typescript@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-syntax-typescript@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/11589b4c89c66ef02d57bf56c6246267851ec0c361f58929327dc3e070b0dab644be625bbe7fb4c4df30c3634bfdfe31244e1f517be397d2def1487dbbe3c37d + checksum: 10c0/c49883b0327e8683b770dc823205af5c697da216e590dcf5bf53f3f031e7e381de450b164f8f99853f0837a3de5cb793298e2be6697a0f6e452bb9dd34b5165e languageName: node linkType: hard @@ -1600,17 +1459,17 @@ __metadata: linkType: hard "@babel/plugin-transform-arrow-functions@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/19abd7a7d11eef58c9340408a4c2594503f6c4eaea1baa7b0e5fbdda89df097e50663edb3448ad2300170b39efca98a75e5767af05cad3b0facb4944326896a3 + checksum: 10c0/03405abac83122b760c4d688a256c7a67961fd5a4396dfd119cf89a118984d31add38eeace38a158c63c3a4257a644e15da8836ee9e50876bf6876e988060be2 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:7.29.0, @babel/plugin-transform-async-generator-functions@npm:^7.29.0": +"@babel/plugin-transform-async-generator-functions@npm:7.29.0": version: 7.29.0 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.29.0" dependencies: @@ -1623,7 +1482,20 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:7.28.6, @babel/plugin-transform-async-to-generator@npm:^7.28.6": +"@babel/plugin-transform-async-generator-functions@npm:^7.29.0": + version: 7.29.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.29.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/helper-remap-async-to-generator": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/efeeb26e8474d75b469b68fd7de74b757929b78aba5714ccb705a42f23d4e0de178ca09b59efd19113d42461bcf876dd9a919fd61f4e5e6fd1d1e5e7998e5bfe + languageName: node + linkType: hard + +"@babel/plugin-transform-async-to-generator@npm:7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-async-to-generator@npm:7.28.6" dependencies: @@ -1636,476 +1508,477 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-async-to-generator@npm:^7.28.6": + version: 7.29.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.29.7" + dependencies: + "@babel/helper-module-imports": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/helper-remap-async-to-generator": "npm:^7.29.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/1aa514d28a2a87747f54e031cf6d2884a792a41c8bb9ebcf4d3d663284a4ae14e02c744ad76819ab09b96b6a0cdb60dd20e54c75f2eb9c3cc3fb255e0ef79e74 + languageName: node + linkType: hard + "@babel/plugin-transform-block-scoped-functions@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/3313130ba3bf0699baad0e60da1c8c3c2f0c2c0a7039cd0063e54e72e739c33f1baadfc9d8c73b3fea8c85dd7250c3964fb09c8e1fa62ba0b24a9fefe0a8dbde + checksum: 10c0/bb790629b9bce5215f932932222b50f371f8dfd30b874b7e6ea294213ddf10f427d5fc80dc7e1c0fba3568f02c1865290ce40aef89657570d98c4eb13b6af3c2 languageName: node linkType: hard "@babel/plugin-transform-block-scoping@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-block-scoping@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-block-scoping@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2e3e09e1f9770b56cef4dcbffddf262508fd03416072f815ac66b2b224a3a12cd285cfec12fc067f1add414e7db5ce6dafb5164a6e0fb1a728e6a97d0c6f6e9d + checksum: 10c0/ec4e45aefd4e1d276d0ee143bc521c2a3b38e59cc7dcef014d43c9a844416160d89f98953399e69e547a5743474d0986cb62155514109eab73b942beeb453a3f languageName: node linkType: hard "@babel/plugin-transform-class-properties@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-class-properties@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-class-properties@npm:7.29.7" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.28.6" - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-create-class-features-plugin": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c4327fcd730c239d9f173f9b695b57b801729e273b4848aef1f75818069dfd31d985d75175db188d947b9b1bbe5353dae298849042026a5e4fcf07582ff3f9f1 + checksum: 10c0/c370700423439aa9f0c1f8c4b97f2ef7c2dc46a1b04ec3b10e83e6bae5e4e2159f56d8e4376c9d669b3cf827650cc3740170a36e3924e3e9970d27fd85f4e48a languageName: node linkType: hard "@babel/plugin-transform-class-static-block@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-class-static-block@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-class-static-block@npm:7.29.7" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.28.6" - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-create-class-features-plugin": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.12.0 - checksum: 10c0/dbe9b1fd302ae41b73186e17ac8d8ecf625ebc2416a91f2dc8013977a1bdf21e6ea288a83f084752b412242f3866e789d4fddeb428af323fe35b60e0fae4f98c + checksum: 10c0/d2fa7e8af5d05cee838bab20b624c2911ef6618c7ead146f6ace6421280d0e57487fc2b946b42832289a35764b559e584983b32e51bf5a85596495ba3452970f languageName: node linkType: hard "@babel/plugin-transform-classes@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-classes@npm:7.28.6" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.3" - "@babel/helper-compilation-targets": "npm:^7.28.6" - "@babel/helper-globals": "npm:^7.28.0" - "@babel/helper-plugin-utils": "npm:^7.28.6" - "@babel/helper-replace-supers": "npm:^7.28.6" - "@babel/traverse": "npm:^7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-classes@npm:7.29.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.29.7" + "@babel/helper-compilation-targets": "npm:^7.29.7" + "@babel/helper-globals": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/helper-replace-supers": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/dc22f1f6eadab17305128fbf9cc5f30e87a51a77dd0a6d5498097994e8a9b9a90ab298c11edf2342acbeaac9edc9c601cad72eedcf4b592cd465a787d7f41490 + checksum: 10c0/53a55bc5348d82ca744dbfcfedf33ab79877e609a5308f43976de8c240bd09cee195a535bf54a01b28d7080eebe759735b1c6cf39f252eef469eefc1d838d2a2 languageName: node linkType: hard "@babel/plugin-transform-computed-properties@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-computed-properties@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-computed-properties@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" - "@babel/template": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/template": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1e9893503ae6d651125701cc29450e87c0b873c8febebff19da75da9c40cfb7968c52c28bf948244e461110aeb7b3591f2cc199b7406ff74a24c50c7a5729f39 + checksum: 10c0/a8755338ffbfb374bafc2b3c22b00b025b8e5cf1cbac9c1ecdb3fb4c538508cb1b8f7a4e8c874b05df5166ff19ef105e65d54fefcf0546c628fa67214453b708 languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.28.5": - version: 7.28.5 - resolution: "@babel/plugin-transform-destructuring@npm:7.28.5" +"@babel/plugin-transform-destructuring@npm:^7.28.5, @babel/plugin-transform-destructuring@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-destructuring@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/traverse": "npm:^7.28.5" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/288207f488412b23bb206c7c01ba143714e2506b72a9ec09e993f28366cc8188d121bde714659b3437984a86d2881d9b1b06de3089d5582823ccf2f3b3eaa2c4 + checksum: 10c0/74ff73303d32f8379f636741d3e48e2a20bbeb6e8b0d9343daad1952242f0ea78f319b4c871b5623739033b61459c9eed3d98f699fd192c45eab61ed8ad4c5ec languageName: node linkType: hard "@babel/plugin-transform-dotall-regex@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.29.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.28.5" - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e2fb76b7ae99087cf4212013a3ca9dee07048f90f98fd6264855080fb6c3f169be11c9b8c9d8b26cf9a407e4d0a5fa6e103f7cef433a542b75cf7127c99d4f97 + checksum: 10c0/1c3eecc214bae152fc9af66b6d7e045a58e364a1cbc18a6c8e0ecea2d470eb6171f35b454dde51dffb4e687245bc8ad9abb9e233cc708db5bd3bdced74a1511c languageName: node linkType: hard "@babel/plugin-transform-duplicate-keys@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/22a822e5342b7066f83eaedc4fd9bb044ac6bc68725484690b33ba04a7104980e43ea3229de439286cb8db8e7db4a865733a3f05123ab58a10f189f03553746f + checksum: 10c0/0d895326d8b29f6acaa8da72ebdc6393537311eaa33d8cab99cbb322a73c21be51d5d932a6d0c124e4f51539c5731dc3ed93084d3a2078a63db59dda6b00a724 languageName: node linkType: hard "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.29.0" + version: 7.29.7 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.29.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.28.5" - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/6f03d9e5e31a05b28555541be6e283407e08447a36be6ddf8068b3efa970411d832e04b1282e2b894baf89a3864ff7e7f1e36346652a8d983170c6d548555167 + checksum: 10c0/1dfecfb693ad6f1b6b779ac2fd676df048a051b83b4856f9ddced6217cd1f69b96259b01b5a67ee970fe531edf845944aadcc3f5dc74780331997f1dbf2de0da languageName: node linkType: hard "@babel/plugin-transform-dynamic-import@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8dcd3087aca134b064fc361d2cc34eec1f900f6be039b6368104afcef10bb75dea726bb18cabd046716b89b0edaa771f50189fa16bc5c5914a38cbcf166350f7 + checksum: 10c0/9f824556ab369173e5945cceeb3b83516a2896b161a5cd9f14641e30b7d1535426eebbf04d1f3cfcac557e0148180650584b4ce552b09a6b03f03adf1fbc689c languageName: node linkType: hard "@babel/plugin-transform-explicit-resource-management@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-explicit-resource-management@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-explicit-resource-management@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" - "@babel/plugin-transform-destructuring": "npm:^7.28.5" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/plugin-transform-destructuring": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e6ea28c26e058fe61ada3e70b0def1992dd5a44f5fc14d8e2c6a3a512fb4d4c6dc96a3e1d0b466d83db32a9101e0b02df94051e48d3140da115b8ea9f8a31f37 + checksum: 10c0/083ef2bbc8c78ff80d70b1fe12604a8a2cc6a5ec68115c6efa4be7b5291b7576a092a102739af7c7e743cad79234b7cb7efe4216ca1913b598e0afc04a9962d5 languageName: node linkType: hard "@babel/plugin-transform-exponentiation-operator@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4572d955a50dbc9a652a19431b4bb822cb479ee6045f4e6df72659c499c13036da0a2adf650b07ca995f2781e80aa868943bea1e7bff1de3169ec3f0a73a902e + checksum: 10c0/1db57e065c5bceafcf7839d0c4cefd5723adba6d858df89d077d3f336364266a2dab71f1eb44746c14024736dd15fbe20ea392128c16b898abefc27cc1ca173f languageName: node linkType: hard "@babel/plugin-transform-export-namespace-from@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d7165cad11f571a54c8d9263d6c6bf2b817aff4874f747cb51e6e49efb32f2c9b37a6850cdb5e3b81e0b638141bb77dc782a6ec1a94128859fbdf7767581e07c + checksum: 10c0/6cd951e366c5c30223c409157e312d949feecfae8b4b4927053764ec71ff2bacf43aceda9b53239cd90d71caf4ae849c70549e0d3e31377dd8f42a0c283bdda2 languageName: node linkType: hard "@babel/plugin-transform-for-of@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-for-of@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-for-of@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4635763173a23aae24480681f2b0996b4f54a0cb2368880301a1801638242e263132d1e8adbe112ab272913d1d900ee0d6f7dea79443aef9d3325168cd88b3fb + checksum: 10c0/1d0143067df5f0d5ff0097099876da5d9d0fb7e2670939fde2523a0b14be2ea2cbcf736f874081d13ec5c3fca756f7aa1782a7c8cf17c262b0a493115a23b6b1 languageName: node linkType: hard "@babel/plugin-transform-function-name@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-function-name@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-function-name@npm:7.29.7" dependencies: - "@babel/helper-compilation-targets": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/traverse": "npm:^7.27.1" + "@babel/helper-compilation-targets": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5abdc7b5945fbd807269dcc6e76e52b69235056023b0b35d311e8f5dfd6c09d9f225839798998fc3b663f50cf701457ddb76517025a0d7a5474f3fe56e567a4c + checksum: 10c0/3ed2bca4f49356cd8fe1aa69daf5de63451be3b9271264eae536baf8d53476c63033e7fed6b5e97277cc10bdbfa10148f2f03315ca4cd94fae2b4ad5cb9b437f languageName: node linkType: hard "@babel/plugin-transform-json-strings@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-json-strings@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-json-strings@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ab1091798c58e6c0bb8a864ee2b727c400924592c6ed69797a26b4c205f850a935de77ad516570be0419c279a3d9f7740c2aa448762eb8364ea77a6a357a9653 + checksum: 10c0/6cc66ffbfa1dd50f1f225da0668740e93357ea84e67c798e9814085595d4f04a65d0d1368d15fd4b0022b7e76eded3a1c822791a93a8855b62897c836c547fff languageName: node linkType: hard "@babel/plugin-transform-literals@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-literals@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-literals@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c40dc3eb2f45a92ee476412314a40e471af51a0f51a24e91b85cef5fc59f4fe06758088f541643f07f949d2c67ee7bdce10e11c5ec56791ae09b15c3b451eeca + checksum: 10c0/bcfb8ca4092f2927ed61fdb75ddbadd701eda08ea2dd972f110d2ef1428643275c7adc7ce26847e15fbd573997e93654ff9afb4c1767a058e6d5843cbb9a4ae7 languageName: node linkType: hard "@babel/plugin-transform-logical-assignment-operators@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4632a35453d2131f0be466681d0a33e3db44d868ff51ec46cd87e0ebd1e47c6a39b894f7d1c9b06f931addf6efa9d30e60c4cdedeb4f69d426f683e11f8490cf + checksum: 10c0/b0b85f47bde7efd253b273bcbe317178df6f281b99f8399c04a3af1a8b0878ddb6e3d57e395292917d0376c337e57f4d64ad9f861001590a90f888c30abf2c51 languageName: node linkType: hard "@babel/plugin-transform-member-expression-literals@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0874ccebbd1c6a155e5f6b3b29729fade1221b73152567c1af1e1a7c12848004dffecbd7eded6dc463955120040ae57c17cb586b53fb5a7a27fcd88177034c30 + checksum: 10c0/b8db313de0a4aeb3a617afcf9413774a53ec71a361030c89dbe2d05aa17310e9d33d4307727c898bfc9b07a9c676482fa8b0463840d1829c21323bc04623d556 languageName: node linkType: hard "@babel/plugin-transform-modules-amd@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-modules-amd@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-modules-amd@npm:7.29.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-module-transforms": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/76e86cd278b6a3c5b8cca8dfb3428e9cd0c81a5df7096e04c783c506696b916a9561386d610a9d846ef64804640e0bd818ea47455fed0ee89b7f66c555b29537 + checksum: 10c0/425e9f99506968196a239944fe4eb51e144eadc2490b49a74798f92226f76b328d13b13e90e07962cd5df327994011570a3c2883b65091dde984b5bdff066c6b languageName: node linkType: hard "@babel/plugin-transform-modules-commonjs@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.29.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.28.6" - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-module-transforms": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7c45992797c6150644c8552feff4a016ba7bd6d59ff2b039ed969a9c5b20a6804cd9d21db5045fc8cca8ca7f08262497e354e93f8f2be6a1cdf3fbfa8c31a9b6 + checksum: 10c0/9791cb524438b2a8ba6cb8715788fa1e202fbecd4e76b3ccab0af0819fd69212b40ae30d72ac377012f7149889f7792ed8bf91e97bbe9113ca9641f8ad3bf332 languageName: node linkType: hard "@babel/plugin-transform-modules-systemjs@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.29.0" + version: 7.29.7 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.29.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.28.6" - "@babel/helper-plugin-utils": "npm:^7.28.6" - "@babel/helper-validator-identifier": "npm:^7.28.5" - "@babel/traverse": "npm:^7.29.0" + "@babel/helper-module-transforms": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/helper-validator-identifier": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/44ea502f2c990398b7d9adc5b44d9e1810a0a5e86eebc05c92d039458f0b3994fe243efa9353b90f8a648d8a91b79845fb353d8679d7324cc9de0162d732771d + checksum: 10c0/7b950bcc4a4b077b742b9299c8c9d4285e15854e23816d0b1c1177fafda4c153f3c3c4487c1b965afbf7a69a8788fc75656d0c591b91f0a5a543faabe738ca58 languageName: node linkType: hard "@babel/plugin-transform-modules-umd@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-modules-umd@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-modules-umd@npm:7.29.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-module-transforms": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e5962a8874889da2ab1aa32eb93ec21d419c7423c766e4befb39b4bb512b9ad44b47837b6cd1c8f1065445cbbcc6dc2be10298ac6e734e5ca1059fc23698daed + checksum: 10c0/14545c7dfc8f95010766075d9cd4c1bf99a868c2dad7f780e9a609c6d94d23044f85672548b35a2162c027647386c0cfb85f68cee8f4e02352683acf6aade76d languageName: node linkType: hard "@babel/plugin-transform-named-capturing-groups-regex@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.29.0" + version: 7.29.7 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.29.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.28.5" - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/1904db22da7f2bc3e380cd2c0786bda330ee1b1b3efa3f5203d980708c4bfeb5daa4dff48d01692193040bcc5f275dbdc0c2eadc8b1eb1b6dfe363564ad6e898 + checksum: 10c0/e16e270fc3640baf403497cbbab196cc0f18477576cf3535713c851f69c6e27b2902cc7502c3a863dce7f0432dc344ddcb14766a2af7cf37333aa864c7e5739b languageName: node linkType: hard "@babel/plugin-transform-new-target@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-new-target@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-new-target@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/9b0581412fcc5ab1b9a2d86a0c5407bd959391f0a1e77a46953fef9f7a57f3f4020d75f71098c5f9e5dcc680a87f9fd99b3205ab12e25ef8c19eed038c1e4b28 + checksum: 10c0/9a192ded7083850d5b3c5629a3da4fe209298ac9d7a84d1495916a5c841cd4017e4d126d98a3b7c322eafae3851345fe2670377a16561b9cbd817e952f6fdbd5 languageName: node linkType: hard "@babel/plugin-transform-nullish-coalescing-operator@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6607f2201d66ccb688f0b1db09475ef995837df19f14705da41f693b669f834c206147a854864ab107913d7b4f4748878b0cd9fe9ca8bfd1bee0c206fc027b49 + checksum: 10c0/b0c186fe38bc66830e1be76f06fabbae8a655d3896a841ba5ffa12d6c40bb9c8a6ecd38a7e2196034b1d7470653109b1ceac1ef5e46a5fdc9291d14afa56e0d0 languageName: node linkType: hard "@babel/plugin-transform-numeric-separator@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/191097d8d2753cdd16d1acca65a945d1645ab20b65655c2f5b030a9e38967a52e093dcb21ebf391e342222705c6ffe5dea15dafd6257f7b51b77fb64a830b637 + checksum: 10c0/a0e79a9627717277cc21ede56d8e57da0ac5e0c9620c963da2526791657044b57eeeafe27f297754cfdea470dd590c763e9bc71d589f1850654f77f5f4f77ece languageName: node linkType: hard "@babel/plugin-transform-object-rest-spread@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.28.6" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.28.6" - "@babel/helper-plugin-utils": "npm:^7.28.6" - "@babel/plugin-transform-destructuring": "npm:^7.28.5" - "@babel/plugin-transform-parameters": "npm:^7.27.7" - "@babel/traverse": "npm:^7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.29.7" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/plugin-transform-destructuring": "npm:^7.29.7" + "@babel/plugin-transform-parameters": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f55334352d4fcde385f2e8a58836687e71ff668c9b6e4c34d52575bf2789cdde92d9d3116edba13647ac0bc3e51fb2a6d1e8fb822dce7e8123334b82600bc4c3 + checksum: 10c0/7963bcbb3165699cabad1ac5dcf03c26ffbe41c4a130283376d6e7a69ee6a353105c666e533e024bdf28862968434d1e13635846c8d8e7f5f9271407112aed1c languageName: node linkType: hard "@babel/plugin-transform-object-super@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-object-super@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-object-super@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-replace-supers": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/helper-replace-supers": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/efa2d092ef55105deb06d30aff4e460c57779b94861188128489b72378bf1f0ab0f06a4a4d68b9ae2a59a79719fbb2d148b9a3dca19ceff9c73b1f1a95e0527c + checksum: 10c0/eacfa0f571cb9bbdb283253b41c7a3cafe03e6da81ea92f61d003971b3ada43a3f65e5392d31ba3fe7da6cd8b4210968729769f22d3f0feb418db9e66f167413 languageName: node linkType: hard "@babel/plugin-transform-optional-catch-binding@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.28.6" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/36e8face000ee65e478a55febf687ce9be7513ad498c60dfe585851555565e0c28e7cb891b3c59709318539ce46f7697d5f42130eb18f385cd47e47cfa297446 - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-chaining@npm:^7.27.1": - version: 7.28.5 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.28.5" + version: 7.29.7 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/adf5f70b1f9eb0dd6ff3d159a714683af3c910775653e667bd9f864c3dc2dc9872aba95f6c1e5f2a9675067241942f4fd0d641147ef4bf2bd8bc15f1fa0f2ed5 + checksum: 10c0/0df7a9cdaec349e4b893cb26b7ad45454b3ac01de722ccea5e8b4332d15f3e1bc2c130a18367052ce195c957178ad773121c5d586454c438d890585fc548dacc languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.28.6" +"@babel/plugin-transform-optional-chaining@npm:^7.28.6, @babel/plugin-transform-optional-chaining@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c159cc74115c2266be21791f192dd079e2aeb65c8731157e53b80fcefa41e8e28ad370021d4dfbdb31f25e5afa0322669a8eb2d032cd96e65ac37e020324c763 + checksum: 10c0/71feacf9a7083030f4c69bf4e91db75f2fceae28e58c58b63db040006d908e15bc1e85a464f24ad659f17702e91a64eabbff9f1dd555ba33d78bb1af8a1d697a languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.27.7": - version: 7.27.7 - resolution: "@babel/plugin-transform-parameters@npm:7.27.7" +"@babel/plugin-transform-parameters@npm:^7.27.7, @babel/plugin-transform-parameters@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/plugin-transform-parameters@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f2da3804e047d9f1cfb27be6c014e2c7f6cf5e1e38290d1cb3cb2607859e3d6facb4ee8c8c1e336e9fbb440091a174ce95ce156582d7e8bf9c0e735d11681f0f + checksum: 10c0/ea1ff347e7b33b2483d18dcb9fb6c58f9819312f38235bf142e12f5355fcf77bb6640929734b12bd26b900c7abbb8cbd77ad06082d4c10d6e0e097ad016237e6 languageName: node linkType: hard "@babel/plugin-transform-private-methods@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-private-methods@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-private-methods@npm:7.29.7" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.28.6" - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-create-class-features-plugin": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/fb504e2bfdcf3f734d2a90ab20d61427c58385f57f950d3de6ff4e6d12dd4aa7d552147312d218367e129b7920dccfc3230ba554de861986cda38921bad84067 + checksum: 10c0/d0dc12fa478d05e346dfb02fad2ed99b308d9a7324bada71530a62dc1ccbf07b4c2581ac677b7196b3994f191ef1922199e2c8f33957b726e2019ce07b4ced0f languageName: node linkType: hard "@babel/plugin-transform-private-property-in-object@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.29.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.3" - "@babel/helper-create-class-features-plugin": "npm:^7.28.6" - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-annotate-as-pure": "npm:^7.29.7" + "@babel/helper-create-class-features-plugin": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0f6bbc6ec3f93b556d3de7d56bf49335255fc4c43488e51a5025d6ee0286183fd3cf950ffcac1bbeed8a45777f860a49996455c8d3b4a04c3b1a5f28e697fe31 + checksum: 10c0/6378b34725c6aab4b580cbb5d35ca45ba52213084d54c6672bc4282d86dc45937b8788ad450a9fb60ceb405e3c0d4b25e2804293c2509b54c5e0078babd56a8a languageName: node linkType: hard "@babel/plugin-transform-property-literals@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-property-literals@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-property-literals@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/15713a87edd6db620d6e66eb551b4fbfff5b8232c460c7c76cedf98efdc5cd21080c97040231e19e06594c6d7dfa66e1ab3d0951e29d5814fb25e813f6d6209c + checksum: 10c0/231ef97caeed1b79676978c9c04f203ba39f98da79097b733946aa29eb302d7cefc863d407f032a805080e8d20f70d7b2265c9c3ce634ca627d63c8f0f6e6e42 languageName: node linkType: hard "@babel/plugin-transform-regenerator@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/plugin-transform-regenerator@npm:7.29.0" + version: 7.29.7 + resolution: "@babel/plugin-transform-regenerator@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/86c7db9b97f85ee47c0fae0528802cbc06e5775e61580ee905335c16bb971270086764a3859873d9adcd7d0f913a5b93eb0dc271aec8fb9e93e090e4ac95e29e + checksum: 10c0/b991ab501c1c2c323398054211f8cd992f1db438b5b5d548d63dc74ff9591d52a50385160fdba2b62aae4f9610a321355a8ff911f1c4bd80dc74b555cad61468 languageName: node linkType: hard "@babel/plugin-transform-regexp-modifiers@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.29.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.28.5" - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/97e36b086800f71694fa406abc00192e3833662f2bdd5f51c018bd0c95eef247c4ae187417c207d03a9c5374342eac0bb65a39112c431a9b23b09b1eda1562e5 + checksum: 10c0/1c6c79f87a7163d33c1c9d787d239e3981755a66822ef0d41a95ce12e76277a247eaeeab29e3cf79bb6288e37e48a18accc13c3a9c351c06e4303b1d9b8b37cb languageName: node linkType: hard "@babel/plugin-transform-reserved-words@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-reserved-words@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-reserved-words@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e1a87691cce21a644a474d7c9a8107d4486c062957be32042d40f0a3d0cc66e00a3150989655019c255ff020d2640ac16aaf544792717d586f219f3bad295567 + checksum: 10c0/9eee586b7c7a9a34a659fd4d55ae8b156b03c8120a8459724062c212a59327ee8878168c0ce6bb5abd6c2a28aa87bc280b5180b1cbb2b03b12f7c71690f48718 languageName: node linkType: hard @@ -2126,119 +1999,120 @@ __metadata: linkType: hard "@babel/plugin-transform-shorthand-properties@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/bd5544b89520a22c41a6df5ddac9039821d3334c0ef364d18b0ba9674c5071c223bcc98be5867dc3865cb10796882b7594e2c40dedaff38e1b1273913fe353e1 + checksum: 10c0/0f28300b873ce874c759917c7b22f68d5145a9c2d97df076e23dca99f8aa565dfceeb7e487af330e01d3e07d78f80d05b584aa411c60a63128b6a04a7633d45b languageName: node linkType: hard "@babel/plugin-transform-spread@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-spread@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-spread@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/bcac50e558d6f0c501cbce19ec197af558cef51fe3b3a6eba27276e323e57a5be28109b4264a5425ac12a67bf95d6af9c2a42b05e79c522ce913fb9529259d76 + checksum: 10c0/a3a5639eac8cc4a9cb3d8b2098a0a341b36e3ae11d29729cac1042d07a31b5290c32fa2c12cd2f122bf581bd0a65fec6b7b6c7446eef5a81e657739a579c0d5c languageName: node linkType: hard "@babel/plugin-transform-sticky-regex@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5698df2d924f0b1b7bdb7ef370e83f99ed3f0964eb3b9c27d774d021bee7f6d45f9a73e2be369d90b4aff1603ce29827f8743f091789960e7669daf9c3cda850 + checksum: 10c0/45b245f07841cc30a8e781a77bb09a2e86b2cc7f872785f315c92e2805825be43ac99f3ba63afcd4722307c648cb7d3f4f6f3e2b27d2d3e281414532a2601762 languageName: node linkType: hard "@babel/plugin-transform-template-literals@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-template-literals@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-template-literals@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c90f403e42ef062b60654d1c122c70f3ec6f00c2f304b0931ebe6d0b432498ef8a5ef9266ddf00debc535f8390842207e44d3900eff1d2bab0cc1a700f03e083 + checksum: 10c0/961c2b42eb6d88042c2c213ed3b11ee1d92783ba63e1afe7e1a3392ec1a810556b5eec369fc5097a4a81f73ef92fa5d245bcf8b15d442e62a086bb1f64b50c95 languageName: node linkType: hard "@babel/plugin-transform-typeof-symbol@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a13c68015311fefa06a51830bc69d5badd06c881b13d5cf9ba04bf7c73e3fc6311cc889e18d9645ce2a64a79456dc9c7be88476c0b6802f62a686cb6f662ecd6 + checksum: 10c0/937408e0b9b2c8df6a6ce590421096fd793f77b417eb1f3f5ec560362e0a855d6ef66346c12cc7b337b8fa1d3ecf6b9b15674aa5ded54141adaed4cdeeed8528 languageName: node linkType: hard "@babel/plugin-transform-unicode-escapes@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.29.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a6809e0ca69d77ee9804e0c1164e8a2dea5e40718f6dcf234aeddf7292e7414f7ee331d87f17eb6f160823a329d1d6751bd49b35b392ac4a6efc032e4d3038d8 + checksum: 10c0/65090012ede685913fb1020a585361dac366801d87caa577075924cac3c3ddd8e2a953bc6f75048dd480e62e529482e6ba68b945b0780087981c9ffff32e84f2 languageName: node linkType: hard "@babel/plugin-transform-unicode-property-regex@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.29.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.28.5" - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b25f8cde643f4f47e0fa4f7b5c552e2dfbb6ad0ce07cf40f7e8ae40daa9855ad855d76d4d6d010153b74e48c8794685955c92ca637c0da152ce5f0fa9e7c90fa + checksum: 10c0/3a869cab02013209192da67ce911fa577eed03293331ee1d2c98498461f31fb5e99cbcb47f0c1c3211cf0c48fdd391060c77ac6a8f9978cd1f48e1096024cb73 languageName: node linkType: hard "@babel/plugin-transform-unicode-regex@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.27.1" + version: 7.29.7 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.29.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6abda1bcffb79feba6f5c691859cdbe984cc96481ea65d5af5ba97c2e843154005f0886e25006a37a2d213c0243506a06eaeafd93a040dbe1f79539016a0d17a + checksum: 10c0/1bd788fd953e9b9a662d9a5ec78750f48daa6ef142a141cc96c38278dff49cf082288fd568acc184386f9accb89fa145cf016cc615ef19bd110ff2162a88cfd7 languageName: node linkType: hard "@babel/plugin-transform-unicode-sets-regex@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.28.6" + version: 7.29.7 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.29.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.28.5" - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-create-regexp-features-plugin": "npm:^7.29.7" + "@babel/helper-plugin-utils": "npm:^7.29.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/c03c8818736b138db73d1f7a96fbfa22d1994639164d743f0f00e6383d3b7b3144d333de960ff4afad0bddd0baaac257295e3316969eba995b1b6a1b4dec933e + checksum: 10c0/7e07f6435b2ba32de80460ddcacc4214c9380984c00fd41ddaa79e4df3f06c022c1283e86bcae7ee09081f4e020f0bb76b26b9f98dc5ea7f4647f559544fe5f9 languageName: node linkType: hard -"@babel/preset-env@npm:7.29.2": - version: 7.29.2 - resolution: "@babel/preset-env@npm:7.29.2" +"@babel/preset-env@npm:7.29.3": + version: 7.29.3 + resolution: "@babel/preset-env@npm:7.29.3" dependencies: - "@babel/compat-data": "npm:^7.29.0" + "@babel/compat-data": "npm:^7.29.3" "@babel/helper-compilation-targets": "npm:^7.28.6" "@babel/helper-plugin-utils": "npm:^7.28.6" "@babel/helper-validator-option": "npm:^7.27.1" "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.28.5" "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.27.1" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.27.1" + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "npm:^7.29.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.27.1" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.28.6" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" @@ -2304,7 +2178,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d49cb005f2dbc3f2293ab6d80ee8f1380e6215af5518fe26b087c8961c1ea8ebaa554dfce589abe1fbebac25ad7c2515d943dec3859ea2d4981a3f8f4711c580 + checksum: 10c0/40591ca097502b547eaf844fceaafbc71aa726a86bec95b66ca4e762b2642a8dfc224eb9204a9d0d952ad62b6b326008f6be4dfc9e274e4438503e4975848372 languageName: node linkType: hard @@ -2328,110 +2202,49 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.27.2": - version: 7.27.2 - resolution: "@babel/template@npm:7.27.2" +"@babel/template@npm:^7.28.6, @babel/template@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/template@npm:7.29.7" dependencies: - "@babel/code-frame": "npm:^7.27.1" - "@babel/parser": "npm:^7.27.2" - "@babel/types": "npm:^7.27.1" - checksum: 10c0/ed9e9022651e463cc5f2cc21942f0e74544f1754d231add6348ff1b472985a3b3502041c0be62dc99ed2d12cfae0c51394bf827452b98a2f8769c03b87aadc81 + "@babel/code-frame": "npm:^7.29.7" + "@babel/parser": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" + checksum: 10c0/8bb7f900dcab0e9e1c5ffbc33ca10e0d26b7b2e2ca804becb73ee771b9c4ed6e2908a4ae4a14c08560febb45d2b6b9a173955e42ad404d05f8b04840a14d9c58 languageName: node linkType: hard -"@babel/template@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/template@npm:7.28.6" +"@babel/traverse@npm:^7.29.0, @babel/traverse@npm:^7.29.7": + version: 7.29.7 + resolution: "@babel/traverse@npm:7.29.7" dependencies: - "@babel/code-frame": "npm:^7.28.6" - "@babel/parser": "npm:^7.28.6" - "@babel/types": "npm:^7.28.6" - checksum: 10c0/66d87225ed0bc77f888181ae2d97845021838c619944877f7c4398c6748bcf611f216dfd6be74d39016af502bca876e6ce6873db3c49e4ac354c56d34d57e9f5 + "@babel/code-frame": "npm:^7.29.7" + "@babel/generator": "npm:^7.29.7" + "@babel/helper-globals": "npm:^7.29.7" + "@babel/parser": "npm:^7.29.7" + "@babel/template": "npm:^7.29.7" + "@babel/types": "npm:^7.29.7" + debug: "npm:^4.3.1" + checksum: 10c0/e256a1fbdb956555b76f3c285b1e453f6bedec8b3afb61751d99d933efd11c7d79caf5ddf2493570058a9f7deaa1b48324380d7c1aa1443fd9508becbf56331a languageName: node linkType: hard -"@babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.3, @babel/traverse@npm:^7.28.5": - version: 7.28.5 - resolution: "@babel/traverse@npm:7.28.5" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.2, @babel/types@npm:^7.29.0, @babel/types@npm:^7.29.7, @babel/types@npm:^7.4.4": + version: 7.29.7 + resolution: "@babel/types@npm:7.29.7" dependencies: - "@babel/code-frame": "npm:^7.27.1" - "@babel/generator": "npm:^7.28.5" - "@babel/helper-globals": "npm:^7.28.0" - "@babel/parser": "npm:^7.28.5" - "@babel/template": "npm:^7.27.2" - "@babel/types": "npm:^7.28.5" - debug: "npm:^4.3.1" - checksum: 10c0/f6c4a595993ae2b73f2d4cd9c062f2e232174d293edd4abe1d715bd6281da8d99e47c65857e8d0917d9384c65972f4acdebc6749a7c40a8fcc38b3c7fb3e706f + "@babel/helper-string-parser": "npm:^7.29.7" + "@babel/helper-validator-identifier": "npm:^7.29.7" + checksum: 10c0/b6623994c69717fa27294f5fa46d59140338e2d86c6c1c13085c84ef7d53086ee357fbf4fe9abe3dd3da75734dc77c4c0df2f90fb29e667558bb3b3fb705e88f languageName: node linkType: hard -"@babel/traverse@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/traverse@npm:7.28.6" - dependencies: - "@babel/code-frame": "npm:^7.28.6" - "@babel/generator": "npm:^7.28.6" - "@babel/helper-globals": "npm:^7.28.0" - "@babel/parser": "npm:^7.28.6" - "@babel/template": "npm:^7.28.6" - "@babel/types": "npm:^7.28.6" - debug: "npm:^4.3.1" - checksum: 10c0/ed5deb9c3f03e2d1ad2d44b9c92c84cce24593245c3f7871ce27ee1b36d98034e6cd895fa98a94eb44ebabe1d22f51b10b09432939d1c51a0fcaab98f17a97bc - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/traverse@npm:7.29.0" - dependencies: - "@babel/code-frame": "npm:^7.29.0" - "@babel/generator": "npm:^7.29.0" - "@babel/helper-globals": "npm:^7.28.0" - "@babel/parser": "npm:^7.29.0" - "@babel/template": "npm:^7.28.6" - "@babel/types": "npm:^7.29.0" - debug: "npm:^4.3.1" - checksum: 10c0/f63ef6e58d02a9fbf3c0e2e5f1c877da3e0bc57f91a19d2223d53e356a76859cbaf51171c9211c71816d94a0e69efa2732fd27ffc0e1bbc84b636e60932333eb - languageName: node - linkType: hard - -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.2, @babel/types@npm:^7.28.4, @babel/types@npm:^7.28.5, @babel/types@npm:^7.4.4": - version: 7.28.5 - resolution: "@babel/types@npm:7.28.5" - dependencies: - "@babel/helper-string-parser": "npm:^7.27.1" - "@babel/helper-validator-identifier": "npm:^7.28.5" - checksum: 10c0/a5a483d2100befbf125793640dec26b90b95fd233a94c19573325898a5ce1e52cdfa96e495c7dcc31b5eca5b66ce3e6d4a0f5a4a62daec271455959f208ab08a - languageName: node - linkType: hard - -"@babel/types@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/types@npm:7.28.6" - dependencies: - "@babel/helper-string-parser": "npm:^7.27.1" - "@babel/helper-validator-identifier": "npm:^7.28.5" - checksum: 10c0/54a6a9813e48ef6f35aa73c03b3c1572cad7fa32b61b35dd07e4230bc77b559194519c8a4d8106a041a27cc7a94052579e238a30a32d5509aa4da4d6fd83d990 - languageName: node - linkType: hard - -"@babel/types@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/types@npm:7.29.0" - dependencies: - "@babel/helper-string-parser": "npm:^7.27.1" - "@babel/helper-validator-identifier": "npm:^7.28.5" - checksum: 10c0/23cc3466e83bcbfab8b9bd0edaafdb5d4efdb88b82b3be6728bbade5ba2f0996f84f63b1c5f7a8c0d67efded28300898a5f930b171bb40b311bca2029c4e9b4f - languageName: node - linkType: hard - -"@bazel/bazelisk@npm:^1.26.0": - version: 1.26.0 - resolution: "@bazel/bazelisk@npm:1.26.0" - bin: - bazel: bazelisk.js - bazelisk: bazelisk.js - checksum: 10c0/7a847e29c6062faa80bfd731738a25f3cc0f740f23d5cd80ca675e73fc5235fb9583e94a56b2d6675bf0bc17a2fd8271078fb8e4541d52e042ff2559399b4cba +"@bazel/bazelisk@npm:^1.26.0": + version: 1.28.1 + resolution: "@bazel/bazelisk@npm:1.28.1" + bin: + bazel: bazelisk.js + bazelisk: bazelisk.js + checksum: 10c0/45232721e16f305745ebbdbbfeffbb0a76de4fdd4f7fbac5fae74800d1e6c14444f47bd8799abb158ba89b6bb6d8dadc4b4e141c33f6dd93311421344bc9b7c9 languageName: node linkType: hard @@ -2653,45 +2466,7 @@ __metadata: languageName: node linkType: hard -"@conventional-changelog/git-client@npm:^2.5.1": - version: 2.5.1 - resolution: "@conventional-changelog/git-client@npm:2.5.1" - dependencies: - "@simple-libs/child-process-utils": "npm:^1.0.0" - "@simple-libs/stream-utils": "npm:^1.1.0" - semver: "npm:^7.5.2" - peerDependencies: - conventional-commits-filter: ^5.0.0 - conventional-commits-parser: ^6.1.0 - peerDependenciesMeta: - conventional-commits-filter: - optional: true - conventional-commits-parser: - optional: true - checksum: 10c0/a36fd997933afe78097e53b13ffadd6c17087265666c7faf223126b39e856c39167f245a0c2151c0f0b622e0bcd4d9bf0877316a00362d7a4f4d0304c92f8d65 - languageName: node - linkType: hard - -"@conventional-changelog/git-client@npm:^2.6.0": - version: 2.6.0 - resolution: "@conventional-changelog/git-client@npm:2.6.0" - dependencies: - "@simple-libs/child-process-utils": "npm:^1.0.0" - "@simple-libs/stream-utils": "npm:^1.2.0" - semver: "npm:^7.5.2" - peerDependencies: - conventional-commits-filter: ^5.0.0 - conventional-commits-parser: ^6.3.0 - peerDependenciesMeta: - conventional-commits-filter: - optional: true - conventional-commits-parser: - optional: true - checksum: 10c0/7f0582858c5a2ecd481e9c3cfd4d87aeecc2ae5894b968a58b692e2a085b80345f069ba33274c77292b64e29af07a98531accb46d7902e93b7c6dce11aee1eb1 - languageName: node - linkType: hard - -"@conventional-changelog/git-client@npm:^2.7.0": +"@conventional-changelog/git-client@npm:^2.5.1, @conventional-changelog/git-client@npm:^2.6.0, @conventional-changelog/git-client@npm:^2.7.0": version: 2.7.0 resolution: "@conventional-changelog/git-client@npm:2.7.0" dependencies: @@ -2710,15 +2485,6 @@ __metadata: languageName: node linkType: hard -"@cspotcode/source-map-support@npm:^0.8.0": - version: 0.8.1 - resolution: "@cspotcode/source-map-support@npm:0.8.1" - dependencies: - "@jridgewell/trace-mapping": "npm:0.3.9" - checksum: 10c0/05c5368c13b662ee4c122c7bfbe5dc0b613416672a829f3e78bc49a357a197e0218d6e74e7c66cfcd04e15a179acab080bd3c69658c9fbefd0e1ccd950a07fc6 - languageName: node - linkType: hard - "@csstools/color-helpers@npm:^5.1.0": version: 5.1.0 resolution: "@csstools/color-helpers@npm:5.1.0" @@ -2743,13 +2509,13 @@ __metadata: languageName: node linkType: hard -"@csstools/css-calc@npm:^3.2.0": - version: 3.2.0 - resolution: "@csstools/css-calc@npm:3.2.0" +"@csstools/css-calc@npm:^3.2.0, @csstools/css-calc@npm:^3.2.1": + version: 3.2.1 + resolution: "@csstools/css-calc@npm:3.2.1" peerDependencies: "@csstools/css-parser-algorithms": ^4.0.0 "@csstools/css-tokenizer": ^4.0.0 - checksum: 10c0/a4dffeef3cb8ec9e8c1e44fa68c7634033050be52ea0b56ba6ac3815b635b587c6f3a8f8cd7b8f53881c2dd0ab9ec0af77227c532ed81b8e24a05aa997d22337 + checksum: 10c0/0191c8d1cd4dffa0d3b6bfd1e78a721934b1d7a6c972966e4fdaa72208c6789e8ff443ee81764a32f1e6107825695b5524ef2b4dc1681b5b29230f2a1277e5df languageName: node linkType: hard @@ -2767,15 +2533,15 @@ __metadata: linkType: hard "@csstools/css-color-parser@npm:^4.1.0": - version: 4.1.0 - resolution: "@csstools/css-color-parser@npm:4.1.0" + version: 4.1.1 + resolution: "@csstools/css-color-parser@npm:4.1.1" dependencies: "@csstools/color-helpers": "npm:^6.0.2" - "@csstools/css-calc": "npm:^3.2.0" + "@csstools/css-calc": "npm:^3.2.1" peerDependencies: "@csstools/css-parser-algorithms": ^4.0.0 "@csstools/css-tokenizer": ^4.0.0 - checksum: 10c0/b5b8a697b4c1b22dd535b4d93b2ffce338d38e587ac1ab20b781c08328bfa99e5f763a99d990983560df543862fa9bd578ee966c18f9d3381c8e33c641d32a0e + checksum: 10c0/427bd32f1a8917342a70a6fd97b93bb492aae7c8790e7782b5d6edc8c08064bb8aef0a86099f286db00288f9afea85eb92c46350e9057f5fea058e03a2a09203 languageName: node linkType: hard @@ -2798,14 +2564,14 @@ __metadata: linkType: hard "@csstools/css-syntax-patches-for-csstree@npm:^1.1.3": - version: 1.1.3 - resolution: "@csstools/css-syntax-patches-for-csstree@npm:1.1.3" + version: 1.1.5 + resolution: "@csstools/css-syntax-patches-for-csstree@npm:1.1.5" peerDependencies: css-tree: ^3.2.1 peerDependenciesMeta: css-tree: optional: true - checksum: 10c0/3b8a686710a46bb460f9d560d52ce0de315828e6d452002b692013e95fbf53669d7a71e28c9b6b1333fa9f37f058fad93e5db3b8516444907713cb9aad299ce1 + checksum: 10c0/a31f0cfb74e2b5ce8a283c47969a202fc3b23c3ee05c6b6beab7f5c14d89c50b82533e446df74f7df0bf88bf23810ed59431353db26e00d5b013995c1ebf07a2 languageName: node linkType: hard @@ -2824,8 +2590,8 @@ __metadata: linkType: hard "@cypress/request@npm:^4.0.0": - version: 4.0.0 - resolution: "@cypress/request@npm:4.0.0" + version: 4.0.1 + resolution: "@cypress/request@npm:4.0.1" dependencies: aws-sign2: "npm:~0.7.0" aws4: "npm:^1.8.0" @@ -2840,11 +2606,11 @@ __metadata: json-stringify-safe: "npm:~5.0.1" mime-types: "npm:~2.1.19" performance-now: "npm:^2.1.0" - qs: "npm:~6.14.1" + qs: "npm:^6.15.2" safe-buffer: "npm:^5.1.2" tough-cookie: "npm:^5.0.0" tunnel-agent: "npm:^0.6.0" - checksum: 10c0/f85502209aa3a4097e598bdd85b9f1c728ee2758fdbee8cafd5fe22d46ab625082df2957c166f6320adbf7698afa2871005b3dfa3dbddc676bf056144e072ebe + checksum: 10c0/266648f03ebf3645ccfb3f17dceb1e8ce95a456a79e7f958ee2165ef84ce5bfdbea2904fdd5b21d6301e7abeb72e35b5dec33393502501758cd20df86eb2e943 languageName: node linkType: hard @@ -2873,51 +2639,44 @@ __metadata: languageName: node linkType: hard -"@discoveryjs/json-ext@npm:0.6.3": - version: 0.6.3 - resolution: "@discoveryjs/json-ext@npm:0.6.3" - checksum: 10c0/778a9f9d5c3696da3c1f9fa4186613db95a1090abbfb6c2601430645c0d0158cd5e4ba4f32c05904e2dd2747d57710f6aab22bd2f8aa3c4e8feab9b247c65d85 +"@discoveryjs/json-ext@npm:1.1.0": + version: 1.1.0 + resolution: "@discoveryjs/json-ext@npm:1.1.0" + checksum: 10c0/e48a15f97874cae46181d08b6d4e03f6fd2de92a5323a5e3847ce66b273769e6a81935181fa69be771a2d2252c04faea7157d7dd5744b44ed5abd624fcda8c29 languageName: node linkType: hard -"@emnapi/core@npm:^1.4.3, @emnapi/core@npm:^1.7.1": - version: 1.7.1 - resolution: "@emnapi/core@npm:1.7.1" +"@emnapi/core@npm:1.10.0": + version: 1.10.0 + resolution: "@emnapi/core@npm:1.10.0" dependencies: - "@emnapi/wasi-threads": "npm:1.1.0" + "@emnapi/wasi-threads": "npm:1.2.1" tslib: "npm:^2.4.0" - checksum: 10c0/f3740be23440b439333e3ae3832163f60c96c4e35337f3220ceba88f36ee89a57a871d27c94eb7a9ff98a09911ed9a2089e477ab549f4d30029f8b907f84a351 + checksum: 10c0/f51d08227857b60632de7714d708124f0e100a1462dde6df8221760939aa3204a73193830371830fac0716f3ccd2129f2cac1b17cd7d7958bc4da9018a296edb languageName: node linkType: hard -"@emnapi/runtime@npm:^1.4.3, @emnapi/runtime@npm:^1.7.1": - version: 1.7.1 - resolution: "@emnapi/runtime@npm:1.7.1" +"@emnapi/runtime@npm:1.10.0": + version: 1.10.0 + resolution: "@emnapi/runtime@npm:1.10.0" dependencies: tslib: "npm:^2.4.0" - checksum: 10c0/26b851cd3e93877d8732a985a2ebf5152325bbacc6204ef5336a47359dedcc23faeb08cdfcb8bb389b5401b3e894b882bc1a1e55b4b7c1ed1e67c991a760ddd5 + checksum: 10c0/953f14991d1aefb92ee6f8eb27dea725e484791a53a0cb5f47d9e0087b9a2c929ff2e92adf95af15d6ad456db6300c6b761ebf72b50a875b874a83520b3ba093 languageName: node linkType: hard -"@emnapi/wasi-threads@npm:1.1.0": - version: 1.1.0 - resolution: "@emnapi/wasi-threads@npm:1.1.0" +"@emnapi/wasi-threads@npm:1.2.1": + version: 1.2.1 + resolution: "@emnapi/wasi-threads@npm:1.2.1" dependencies: tslib: "npm:^2.4.0" - checksum: 10c0/e6d54bf2b1e64cdd83d2916411e44e579b6ae35d5def0dea61a3c452d9921373044dff32a8b8473ae60c80692bdc39323e98b96a3f3d87ba6886b24dd0ef7ca1 - languageName: node - linkType: hard - -"@esbuild/aix-ppc64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/aix-ppc64@npm:0.27.1" - conditions: os=aix & cpu=ppc64 + checksum: 10c0/32fcfa81ab396533b2ec1f4082b1ff779a05d9c836bbbd3f4398405b0e6814c0d9503b7993130e37bc6941dbc1ded49f55e9700ae9ca4e803bab2b5bc5deb331 languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/aix-ppc64@npm:0.27.3" +"@esbuild/aix-ppc64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/aix-ppc64@npm:0.27.7" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard @@ -2929,16 +2688,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/android-arm64@npm:0.27.1" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/android-arm64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/android-arm64@npm:0.27.3" +"@esbuild/android-arm64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/android-arm64@npm:0.27.7" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -2950,16 +2702,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/android-arm@npm:0.27.1" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@esbuild/android-arm@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/android-arm@npm:0.27.3" +"@esbuild/android-arm@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/android-arm@npm:0.27.7" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -2971,16 +2716,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/android-x64@npm:0.27.1" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/android-x64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/android-x64@npm:0.27.3" +"@esbuild/android-x64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/android-x64@npm:0.27.7" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -2992,16 +2730,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/darwin-arm64@npm:0.27.1" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/darwin-arm64@npm:0.27.3" +"@esbuild/darwin-arm64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/darwin-arm64@npm:0.27.7" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -3013,16 +2744,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/darwin-x64@npm:0.27.1" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/darwin-x64@npm:0.27.3" +"@esbuild/darwin-x64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/darwin-x64@npm:0.27.7" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -3034,16 +2758,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/freebsd-arm64@npm:0.27.1" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/freebsd-arm64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/freebsd-arm64@npm:0.27.3" +"@esbuild/freebsd-arm64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/freebsd-arm64@npm:0.27.7" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -3055,16 +2772,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/freebsd-x64@npm:0.27.1" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/freebsd-x64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/freebsd-x64@npm:0.27.3" +"@esbuild/freebsd-x64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/freebsd-x64@npm:0.27.7" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -3076,16 +2786,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/linux-arm64@npm:0.27.1" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/linux-arm64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/linux-arm64@npm:0.27.3" +"@esbuild/linux-arm64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/linux-arm64@npm:0.27.7" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -3097,16 +2800,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/linux-arm@npm:0.27.1" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@esbuild/linux-arm@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/linux-arm@npm:0.27.3" +"@esbuild/linux-arm@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/linux-arm@npm:0.27.7" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -3118,16 +2814,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/linux-ia32@npm:0.27.1" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/linux-ia32@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/linux-ia32@npm:0.27.3" +"@esbuild/linux-ia32@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/linux-ia32@npm:0.27.7" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -3139,16 +2828,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/linux-loong64@npm:0.27.1" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - -"@esbuild/linux-loong64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/linux-loong64@npm:0.27.3" +"@esbuild/linux-loong64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/linux-loong64@npm:0.27.7" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -3160,16 +2842,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/linux-mips64el@npm:0.27.1" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - -"@esbuild/linux-mips64el@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/linux-mips64el@npm:0.27.3" +"@esbuild/linux-mips64el@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/linux-mips64el@npm:0.27.7" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -3181,16 +2856,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/linux-ppc64@npm:0.27.1" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/linux-ppc64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/linux-ppc64@npm:0.27.3" +"@esbuild/linux-ppc64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/linux-ppc64@npm:0.27.7" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -3202,16 +2870,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/linux-riscv64@npm:0.27.1" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - -"@esbuild/linux-riscv64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/linux-riscv64@npm:0.27.3" +"@esbuild/linux-riscv64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/linux-riscv64@npm:0.27.7" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -3223,16 +2884,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/linux-s390x@npm:0.27.1" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"@esbuild/linux-s390x@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/linux-s390x@npm:0.27.3" +"@esbuild/linux-s390x@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/linux-s390x@npm:0.27.7" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -3244,16 +2898,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/linux-x64@npm:0.27.1" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/linux-x64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/linux-x64@npm:0.27.3" +"@esbuild/linux-x64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/linux-x64@npm:0.27.7" conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -3265,16 +2912,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-arm64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/netbsd-arm64@npm:0.27.1" - conditions: os=netbsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/netbsd-arm64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/netbsd-arm64@npm:0.27.3" +"@esbuild/netbsd-arm64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/netbsd-arm64@npm:0.27.7" conditions: os=netbsd & cpu=arm64 languageName: node linkType: hard @@ -3286,16 +2926,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/netbsd-x64@npm:0.27.1" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/netbsd-x64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/netbsd-x64@npm:0.27.3" +"@esbuild/netbsd-x64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/netbsd-x64@npm:0.27.7" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard @@ -3307,16 +2940,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-arm64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/openbsd-arm64@npm:0.27.1" - conditions: os=openbsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/openbsd-arm64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/openbsd-arm64@npm:0.27.3" +"@esbuild/openbsd-arm64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/openbsd-arm64@npm:0.27.7" conditions: os=openbsd & cpu=arm64 languageName: node linkType: hard @@ -3328,16 +2954,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/openbsd-x64@npm:0.27.1" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openbsd-x64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/openbsd-x64@npm:0.27.3" +"@esbuild/openbsd-x64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/openbsd-x64@npm:0.27.7" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -3349,16 +2968,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/openharmony-arm64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/openharmony-arm64@npm:0.27.1" - conditions: os=openharmony & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/openharmony-arm64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/openharmony-arm64@npm:0.27.3" +"@esbuild/openharmony-arm64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/openharmony-arm64@npm:0.27.7" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard @@ -3370,16 +2982,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/sunos-x64@npm:0.27.1" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/sunos-x64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/sunos-x64@npm:0.27.3" +"@esbuild/sunos-x64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/sunos-x64@npm:0.27.7" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -3391,16 +2996,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/win32-arm64@npm:0.27.1" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/win32-arm64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/win32-arm64@npm:0.27.3" +"@esbuild/win32-arm64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/win32-arm64@npm:0.27.7" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -3412,16 +3010,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/win32-ia32@npm:0.27.1" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/win32-ia32@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/win32-ia32@npm:0.27.3" +"@esbuild/win32-ia32@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/win32-ia32@npm:0.27.7" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -3433,16 +3024,9 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.27.1": - version: 0.27.1 - resolution: "@esbuild/win32-x64@npm:0.27.1" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/win32-x64@npm:0.27.3": - version: 0.27.3 - resolution: "@esbuild/win32-x64@npm:0.27.3" +"@esbuild/win32-x64@npm:0.27.7": + version: 0.27.7 + resolution: "@esbuild/win32-x64@npm:0.27.7" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3454,18 +3038,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.7.0, @eslint-community/eslint-utils@npm:^4.8.0": - version: 4.9.0 - resolution: "@eslint-community/eslint-utils@npm:4.9.0" - dependencies: - eslint-visitor-keys: "npm:^3.4.3" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10c0/8881e22d519326e7dba85ea915ac7a143367c805e6ba1374c987aa2fbdd09195cc51183d2da72c0e2ff388f84363e1b220fd0d19bef10c272c63455162176817 - languageName: node - linkType: hard - -"@eslint-community/eslint-utils@npm:^4.9.1": +"@eslint-community/eslint-utils@npm:^4.8.0, @eslint-community/eslint-utils@npm:^4.9.1": version: 4.9.1 resolution: "@eslint-community/eslint-utils@npm:4.9.1" dependencies: @@ -3541,36 +3114,22 @@ __metadata: languageName: node linkType: hard -"@exodus/bytes@npm:^1.11.0, @exodus/bytes@npm:^1.6.0": - version: 1.14.1 - resolution: "@exodus/bytes@npm:1.14.1" - peerDependencies: - "@noble/hashes": ^1.8.0 || ^2.0.0 - peerDependenciesMeta: - "@noble/hashes": - optional: true - checksum: 10c0/486dad30992a8c81058b6b59341ee934c10a7e8016b440770de0f86d2e270950c5d37fc6724ea017295b8654c7564abf6a21cc49bed569d74721b545f571e416 - languageName: node - linkType: hard - -"@exodus/bytes@npm:^1.15.0": - version: 1.15.0 - resolution: "@exodus/bytes@npm:1.15.0" +"@exodus/bytes@npm:^1.11.0, @exodus/bytes@npm:^1.15.0, @exodus/bytes@npm:^1.6.0": + version: 1.15.1 + resolution: "@exodus/bytes@npm:1.15.1" peerDependencies: "@noble/hashes": ^1.8.0 || ^2.0.0 peerDependenciesMeta: "@noble/hashes": optional: true - checksum: 10c0/b48aad9729653385d6ed055c28cfcf0b1b1481cf5d83f4375c12abd7988f1d20f69c80b5f95d4a1cc24d9abe32b9efc352a812d53884c26efea172aca8b6356d + checksum: 10c0/333056a6953bbf875d9f3b86c32314de29458d842e5f56f6ef8034b18c2d9660184550093d1bae5de0064043d5e23f54cc03148798d9d29cf5167ac03f2e9f8c languageName: node linkType: hard -"@gar/promise-retry@npm:^1.0.0": - version: 1.0.2 - resolution: "@gar/promise-retry@npm:1.0.2" - dependencies: - retry: "npm:^0.13.1" - checksum: 10c0/748a84fb0ab962f7867966f21dc24d1872c53c1656dd3352320fe69ad3b2043f2dfdb3be024c7636ce4904c5ba1da22d0f3558e489c3de578f5bb520f062d0fd +"@gar/promise-retry@npm:^1.0.0, @gar/promise-retry@npm:^1.0.2": + version: 1.0.3 + resolution: "@gar/promise-retry@npm:1.0.3" + checksum: 10c0/885b02c8b0d75b2d215da25f3b639158c4fbe8fefe0d79163304534b9a6d0710db4b7699f7cd3cc1a730792bff04cbe19f4850a62d3e105a663eaeec88f38332 languageName: node linkType: hard @@ -3582,28 +3141,38 @@ __metadata: linkType: hard "@hono/node-server@npm:^1.19.9": - version: 1.19.9 - resolution: "@hono/node-server@npm:1.19.9" + version: 1.19.14 + resolution: "@hono/node-server@npm:1.19.14" peerDependencies: hono: ^4 - checksum: 10c0/de18c06b6b266dc45fe55fb82053bd1da8fe84939c49b6fbab4d2448b679d54ab5affbf8b15de9bead26f29b1755284d770aafb5ad14a8e4b3cfb4f79334554e + checksum: 10c0/41a099bb3705d96aac44b7a8db8805f2a22ce8a0f767a27b6d10b74a9964925df01c5f35d3631e882f8bcdeee3518884c30f40588ac8c960d88bf71048ba0df3 languageName: node linkType: hard -"@humanfs/core@npm:^0.19.1": - version: 0.19.1 - resolution: "@humanfs/core@npm:0.19.1" - checksum: 10c0/aa4e0152171c07879b458d0e8a704b8c3a89a8c0541726c6b65b81e84fd8b7564b5d6c633feadc6598307d34564bd53294b533491424e8e313d7ab6c7bc5dc67 +"@humanfs/core@npm:^0.19.2": + version: 0.19.2 + resolution: "@humanfs/core@npm:0.19.2" + dependencies: + "@humanfs/types": "npm:^0.15.0" + checksum: 10c0/d0a1d52d7b30c27d49475a53072d1510b81c5803e44b342fb8faf3887f1aa27593a1e6dc76a45268e7892d3f4e198146659281f6b6d55eacf3fd5a38bac30c5c languageName: node linkType: hard "@humanfs/node@npm:^0.16.6": - version: 0.16.7 - resolution: "@humanfs/node@npm:0.16.7" + version: 0.16.8 + resolution: "@humanfs/node@npm:0.16.8" dependencies: - "@humanfs/core": "npm:^0.19.1" + "@humanfs/core": "npm:^0.19.2" + "@humanfs/types": "npm:^0.15.0" "@humanwhocodes/retry": "npm:^0.4.0" - checksum: 10c0/9f83d3cf2cfa37383e01e3cdaead11cd426208e04c44adcdd291aa983aaf72d7d3598844d2fe9ce54896bb1bf8bd4b56883376611c8905a19c44684642823f30 + checksum: 10c0/56140579db811af4e160b195d45d0f29acf644d192c93fe24c9e594ebf06f19dfc157494a07c84540b8a071c0e4b37209c2362765d31734f4d0be869c2422e25 + languageName: node + linkType: hard + +"@humanfs/types@npm:^0.15.0": + version: 0.15.0 + resolution: "@humanfs/types@npm:0.15.0" + checksum: 10c0/fc26b9a024b0e55f7eaf64036df94345bf5d36d6a41ef80ef38e78f1f7430ce26cf435af736adae58913baae18eac3f38c18739054a3d379102015978eae862e languageName: node linkType: hard @@ -3621,13 +3190,6 @@ __metadata: languageName: node linkType: hard -"@inquirer/ansi@npm:^1.0.2": - version: 1.0.2 - resolution: "@inquirer/ansi@npm:1.0.2" - checksum: 10c0/8e408cc628923aa93402e66657482ccaa2ad5174f9db526d9a8b443f9011e9cd8f70f0f534f5fe3857b8a9df3bce1e25f66c96f666d6750490bd46e2b4f3b829 - languageName: node - linkType: hard - "@inquirer/ansi@npm:^2.0.7": version: 2.0.7 resolution: "@inquirer/ansi@npm:2.0.7" @@ -3635,61 +3197,54 @@ __metadata: languageName: node linkType: hard -"@inquirer/checkbox@npm:^4.3.2": - version: 4.3.2 - resolution: "@inquirer/checkbox@npm:4.3.2" +"@inquirer/checkbox@npm:^5.1.4": + version: 5.2.1 + resolution: "@inquirer/checkbox@npm:5.2.1" dependencies: - "@inquirer/ansi": "npm:^1.0.2" - "@inquirer/core": "npm:^10.3.2" - "@inquirer/figures": "npm:^1.0.15" - "@inquirer/type": "npm:^3.0.10" - yoctocolors-cjs: "npm:^2.1.3" + "@inquirer/ansi": "npm:^2.0.7" + "@inquirer/core": "npm:^11.2.1" + "@inquirer/figures": "npm:^2.0.7" + "@inquirer/type": "npm:^4.0.7" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/771d23bc6b16cd5c21a4f1073e98e306147f90c0e2487fe887ee054b8bf86449f1f9e6e6f9c218c1aa45ae3be2533197d53654abe9c0545981aebb0920d5f471 + checksum: 10c0/e3a845156c718fbbec228a0e7fd2a4f10775185615eac1f405b3a2bb2ae607dda6baf178fbd6487db0e12e5e33014536e81acefe65de57cd476a7aeaea6fb35d languageName: node linkType: hard -"@inquirer/confirm@npm:5.1.21, @inquirer/confirm@npm:^5.1.21": - version: 5.1.21 - resolution: "@inquirer/confirm@npm:5.1.21" +"@inquirer/confirm@npm:6.0.12": + version: 6.0.12 + resolution: "@inquirer/confirm@npm:6.0.12" dependencies: - "@inquirer/core": "npm:^10.3.2" - "@inquirer/type": "npm:^3.0.10" + "@inquirer/core": "npm:^11.1.9" + "@inquirer/type": "npm:^4.0.5" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/a95bbdbb17626c484735a4193ed6b6a6fbb078cf62116ec8e1667f647e534dd6618e688ecc7962585efcc56881b544b8c53db3914599bbf2ab842e7f224b0fca + checksum: 10c0/36e9b1ef60e08562f07bcbcd78ba0a681b2fa3e5f54fa5e12303fc5982e8ba875ed782c24161e2295028b2b404ba690e841837303d16eeeb28df7aa9eb8aa835 languageName: node linkType: hard -"@inquirer/core@npm:^10.3.2": - version: 10.3.2 - resolution: "@inquirer/core@npm:10.3.2" +"@inquirer/confirm@npm:^6.0.12": + version: 6.1.1 + resolution: "@inquirer/confirm@npm:6.1.1" dependencies: - "@inquirer/ansi": "npm:^1.0.2" - "@inquirer/figures": "npm:^1.0.15" - "@inquirer/type": "npm:^3.0.10" - cli-width: "npm:^4.1.0" - mute-stream: "npm:^2.0.0" - signal-exit: "npm:^4.1.0" - wrap-ansi: "npm:^6.2.0" - yoctocolors-cjs: "npm:^2.1.3" + "@inquirer/core": "npm:^11.2.1" + "@inquirer/type": "npm:^4.0.7" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/f0f27e07fe288e01e3949b4ad216c19751f025ce77c610366e08d8b0f7a135d064dc074732031d251584b454c576f1e5c849e4abe259186dd5d4974c8f85c13e + checksum: 10c0/4684406161c09327df830b4026f3165b31e13831276d215051586408ed434423263b15686393ce95a4b55058c1b7f9b08aa4b66f5ac930b47523fff75051d36f languageName: node linkType: hard -"@inquirer/core@npm:^11.2.1": +"@inquirer/core@npm:^11.1.9, @inquirer/core@npm:^11.2.1": version: 11.2.1 resolution: "@inquirer/core@npm:11.2.1" dependencies: @@ -3709,39 +3264,23 @@ __metadata: languageName: node linkType: hard -"@inquirer/editor@npm:^4.2.23": - version: 4.2.23 - resolution: "@inquirer/editor@npm:4.2.23" - dependencies: - "@inquirer/core": "npm:^10.3.2" - "@inquirer/external-editor": "npm:^1.0.3" - "@inquirer/type": "npm:^3.0.10" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/aa02028ee35ae039a4857b6a9490d295a1b3558f042e7454dee0aa36fbc83ac25586a2dfe0b46a5ea7ea151e3f5cb97a8ee6229131b4619f3b3466ad74b9519f - languageName: node - linkType: hard - -"@inquirer/expand@npm:^4.0.23": - version: 4.0.23 - resolution: "@inquirer/expand@npm:4.0.23" +"@inquirer/editor@npm:^5.1.1": + version: 5.2.2 + resolution: "@inquirer/editor@npm:5.2.2" dependencies: - "@inquirer/core": "npm:^10.3.2" - "@inquirer/type": "npm:^3.0.10" - yoctocolors-cjs: "npm:^2.1.3" + "@inquirer/core": "npm:^11.2.1" + "@inquirer/external-editor": "npm:^3.0.3" + "@inquirer/type": "npm:^4.0.7" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/294c92652760c3d1a46c4b900a99fd553ea9e5734ba261d4e71d7b8499d86a8b15e38a2467ddb7c95c197daf7e472bdab209fc3f7c38cbc70842cd291f4ce39d + checksum: 10c0/a75e7012aad3ccc3ec84893463ed689924515a6cbaee8e2a475769fb27c12bcf359fcdd5f62e92107fc4be88fd69444c15adf13071982efc140c7015a6604d9a languageName: node linkType: hard -"@inquirer/expand@npm:^5.1.1": +"@inquirer/expand@npm:^5.0.13, @inquirer/expand@npm:^5.1.1": version: 5.1.1 resolution: "@inquirer/expand@npm:5.1.1" dependencies: @@ -3756,25 +3295,18 @@ __metadata: languageName: node linkType: hard -"@inquirer/external-editor@npm:^1.0.3": - version: 1.0.3 - resolution: "@inquirer/external-editor@npm:1.0.3" +"@inquirer/external-editor@npm:^3.0.3": + version: 3.0.3 + resolution: "@inquirer/external-editor@npm:3.0.3" dependencies: chardet: "npm:^2.1.1" - iconv-lite: "npm:^0.7.0" + iconv-lite: "npm:^0.7.2" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/82951cb7f3762dd78cca2ea291396841e3f4adfe26004b5badfed1cec4b6a04bb567dff94d0e41b35c61bdd7957317c64c22f58074d14b238d44e44d9e420019 - languageName: node - linkType: hard - -"@inquirer/figures@npm:^1.0.15": - version: 1.0.15 - resolution: "@inquirer/figures@npm:1.0.15" - checksum: 10c0/6e39a040d260ae234ae220180b7994ff852673e20be925f8aa95e78c7934d732b018cbb4d0ec39e600a410461bcb93dca771e7de23caa10630d255692e440f69 + checksum: 10c0/fc24ddbff15f0874db6498c16d2fe153bb19a670d83605f480486d6ff0ea872ae2f32a548fd555797989db09850fa019a6b5e49a8d40cfee0d7deacad17edc1e languageName: node linkType: hard @@ -3785,24 +3317,24 @@ __metadata: languageName: node linkType: hard -"@inquirer/input@npm:^4.3.1": - version: 4.3.1 - resolution: "@inquirer/input@npm:4.3.1" +"@inquirer/input@npm:^5.0.12, @inquirer/input@npm:^5.1.2": + version: 5.1.2 + resolution: "@inquirer/input@npm:5.1.2" dependencies: - "@inquirer/core": "npm:^10.3.2" - "@inquirer/type": "npm:^3.0.10" + "@inquirer/core": "npm:^11.2.1" + "@inquirer/type": "npm:^4.0.7" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/9e81d6ae56e5b59f96475ae1327e7e7beeef0d917b83762e0c2ed5a75239ad6b1a39fc05553ce45fe6f6de49681dade8704b5f1c11c2f555663a74d0ac998af3 + checksum: 10c0/9c3614f8d79fc2bec07a088858a58967a162046c9292b0c6f0c6f63396cf391181cfb54bb636f5b3dce8d23924c24ee4a0310183a493c94190e4750218f3744d languageName: node linkType: hard -"@inquirer/input@npm:^5.1.2": - version: 5.1.2 - resolution: "@inquirer/input@npm:5.1.2" +"@inquirer/number@npm:^4.0.12": + version: 4.1.1 + resolution: "@inquirer/number@npm:4.1.1" dependencies: "@inquirer/core": "npm:^11.2.1" "@inquirer/type": "npm:^4.0.7" @@ -3811,116 +3343,81 @@ __metadata: peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/9c3614f8d79fc2bec07a088858a58967a162046c9292b0c6f0c6f63396cf391181cfb54bb636f5b3dce8d23924c24ee4a0310183a493c94190e4750218f3744d + checksum: 10c0/06210dd70bf89d35242af43009b5e3f76a5f07d6275a9d842bbed61536032f5f349ecba1c20012975d7b0362deb89746d5903e90f21516da10bfd8c2055829a9 languageName: node linkType: hard -"@inquirer/number@npm:^3.0.23": - version: 3.0.23 - resolution: "@inquirer/number@npm:3.0.23" +"@inquirer/password@npm:^5.0.12": + version: 5.1.1 + resolution: "@inquirer/password@npm:5.1.1" dependencies: - "@inquirer/core": "npm:^10.3.2" - "@inquirer/type": "npm:^3.0.10" + "@inquirer/ansi": "npm:^2.0.7" + "@inquirer/core": "npm:^11.2.1" + "@inquirer/type": "npm:^4.0.7" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/3944a524be2a2e0834822a0e483f2e2fd56ad597b5feeca2155b956821f88e22e07ce3816f66113b040601636ed7146865aee7d7afb2a06939acc77491330ccc + checksum: 10c0/e4cb3a53b56743808f83958a8fe85738d721599690a4bc7640eaa07fb8f4765bc6f174e40c16efcc8a5958a7169667e240714a706a36e831f9c7a6822cbe8b55 languageName: node linkType: hard -"@inquirer/password@npm:^4.0.23": - version: 4.0.23 - resolution: "@inquirer/password@npm:4.0.23" +"@inquirer/prompts@npm:8.4.2": + version: 8.4.2 + resolution: "@inquirer/prompts@npm:8.4.2" dependencies: - "@inquirer/ansi": "npm:^1.0.2" - "@inquirer/core": "npm:^10.3.2" - "@inquirer/type": "npm:^3.0.10" + "@inquirer/checkbox": "npm:^5.1.4" + "@inquirer/confirm": "npm:^6.0.12" + "@inquirer/editor": "npm:^5.1.1" + "@inquirer/expand": "npm:^5.0.13" + "@inquirer/input": "npm:^5.0.12" + "@inquirer/number": "npm:^4.0.12" + "@inquirer/password": "npm:^5.0.12" + "@inquirer/rawlist": "npm:^5.2.8" + "@inquirer/search": "npm:^4.1.8" + "@inquirer/select": "npm:^5.1.4" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/9fd3d0462d02735bb1521c4e221d057a94d9aaac308e9a192e59d6c1e8efc707c2376ab627151d589bc3633f6b14b74b60b91c3d473a32adfd100ef1f6cfdef7 + checksum: 10c0/0519d6a52e195e24b03949afda1ad7fc2ae752c72a7ba554d4bdbbac844fd47dc83d79e67f732c6bf3c56a407e3171b92bd3b0dc334fd35eea446a889d1100f7 languageName: node linkType: hard -"@inquirer/prompts@npm:7.10.1": - version: 7.10.1 - resolution: "@inquirer/prompts@npm:7.10.1" +"@inquirer/rawlist@npm:^5.2.8": + version: 5.3.1 + resolution: "@inquirer/rawlist@npm:5.3.1" dependencies: - "@inquirer/checkbox": "npm:^4.3.2" - "@inquirer/confirm": "npm:^5.1.21" - "@inquirer/editor": "npm:^4.2.23" - "@inquirer/expand": "npm:^4.0.23" - "@inquirer/input": "npm:^4.3.1" - "@inquirer/number": "npm:^3.0.23" - "@inquirer/password": "npm:^4.0.23" - "@inquirer/rawlist": "npm:^4.1.11" - "@inquirer/search": "npm:^3.2.2" - "@inquirer/select": "npm:^4.4.2" + "@inquirer/core": "npm:^11.2.1" + "@inquirer/type": "npm:^4.0.7" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/eac309cc75712bc94fc8b6761d6a736786ca1942cf9c90805b2a6049a05ce6131bcfb3aa703d1dbe66874d1b78c2b446044ad9735a2bb76743b8ddcb3dcb4d2a + checksum: 10c0/a05eb6a16633bd7b32b3b6b2c1f645e6e28d955475b21ba7222e7e66806b1be15be9f91235b2933e8d27e04fdad81ebfb2d64fc1fc0d4b8d82dcd2718817b2b9 languageName: node linkType: hard -"@inquirer/rawlist@npm:^4.1.11": - version: 4.1.11 - resolution: "@inquirer/rawlist@npm:4.1.11" - dependencies: - "@inquirer/core": "npm:^10.3.2" - "@inquirer/type": "npm:^3.0.10" - yoctocolors-cjs: "npm:^2.1.3" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/33792b40cd0fbf77f547c9c4805087dd1188342c6a5ca512c73b0b6c4d132225fc5ae8bc4fd5035309484da3698a90fcef17aad100b9ae57624fda7b07d92227 - languageName: node - linkType: hard - -"@inquirer/search@npm:^3.2.2": - version: 3.2.2 - resolution: "@inquirer/search@npm:3.2.2" - dependencies: - "@inquirer/core": "npm:^10.3.2" - "@inquirer/figures": "npm:^1.0.15" - "@inquirer/type": "npm:^3.0.10" - yoctocolors-cjs: "npm:^2.1.3" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/e7849663a51fe95e3ce99d274c815b8dc8933d6a5ddcaaf6130bf43f5f10316062c9f7a37c2923a14b8dcd09d202b0bb9cc3eaf0adb0336f6a704ea52e03ef8c - languageName: node - linkType: hard - -"@inquirer/select@npm:^4.4.2": - version: 4.4.2 - resolution: "@inquirer/select@npm:4.4.2" +"@inquirer/search@npm:^4.1.8": + version: 4.2.1 + resolution: "@inquirer/search@npm:4.2.1" dependencies: - "@inquirer/ansi": "npm:^1.0.2" - "@inquirer/core": "npm:^10.3.2" - "@inquirer/figures": "npm:^1.0.15" - "@inquirer/type": "npm:^3.0.10" - yoctocolors-cjs: "npm:^2.1.3" + "@inquirer/core": "npm:^11.2.1" + "@inquirer/figures": "npm:^2.0.7" + "@inquirer/type": "npm:^4.0.7" peerDependencies: "@types/node": ">=18" peerDependenciesMeta: "@types/node": optional: true - checksum: 10c0/6978a5a92928b4d439dd6b688f2db51fd49be209f24be224bb81ed8f75b76e0715e79bdb05dab2a33bbdc7091c779a99f8603fe0ca199f059528ca2b1d0d4944 + checksum: 10c0/eae9b2d524aae58266f96987696be22ad62f608661d28763c413f2560094d571a39d72a40630d2470f503ad5e6e50d8c574a653cc028bf79b51104fa91f59a67 languageName: node linkType: hard -"@inquirer/select@npm:^5.2.1": +"@inquirer/select@npm:^5.1.4, @inquirer/select@npm:^5.2.1": version: 5.2.1 resolution: "@inquirer/select@npm:5.2.1" dependencies: @@ -3937,19 +3434,7 @@ __metadata: languageName: node linkType: hard -"@inquirer/type@npm:^3.0.10, @inquirer/type@npm:^3.0.8": - version: 3.0.10 - resolution: "@inquirer/type@npm:3.0.10" - peerDependencies: - "@types/node": ">=18" - peerDependenciesMeta: - "@types/node": - optional: true - checksum: 10c0/a846c7a570e3bf2657d489bcc5dcdc3179d24c7323719de1951dcdb722400ac76e5b2bfe9765d0a789bc1921fac810983d7999f021f30a78a6a174c23fc78dc9 - languageName: node - linkType: hard - -"@inquirer/type@npm:^4.0.7": +"@inquirer/type@npm:^4.0.5, @inquirer/type@npm:^4.0.7": version: 4.0.7 resolution: "@inquirer/type@npm:4.0.7" peerDependencies: @@ -3961,22 +3446,6 @@ __metadata: languageName: node linkType: hard -"@isaacs/balanced-match@npm:^4.0.1": - version: 4.0.1 - resolution: "@isaacs/balanced-match@npm:4.0.1" - checksum: 10c0/7da011805b259ec5c955f01cee903da72ad97c5e6f01ca96197267d3f33103d5b2f8a1af192140f3aa64526c593c8d098ae366c2b11f7f17645d12387c2fd420 - languageName: node - linkType: hard - -"@isaacs/brace-expansion@npm:^5.0.0": - version: 5.0.0 - resolution: "@isaacs/brace-expansion@npm:5.0.0" - dependencies: - "@isaacs/balanced-match": "npm:^4.0.1" - checksum: 10c0/b4d4812f4be53afc2c5b6c545001ff7a4659af68d4484804e9d514e183d20269bb81def8682c01a22b17c4d6aed14292c8494f7d2ac664e547101c1a905aa977 - languageName: node - linkType: hard - "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -4021,9 +3490,9 @@ __metadata: linkType: hard "@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": - version: 0.1.3 - resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 10c0/61c5286771676c9ca3eb2bd8a7310a9c063fb6e0e9712225c8471c582d157392c88f5353581c8c9adbe0dff98892317d2fdfc56c3499aa42e0194405206a963a + version: 0.1.6 + resolution: "@istanbuljs/schema@npm:0.1.6" + checksum: 10c0/bb0d370bf3dd454d2f37f1bccb8921e2da99adacef2da56ef47850e25d7a4de69cf639ead8c189755aef38921369024b4afea3535a5c2ac9082b3e1171bcbc3a languageName: node linkType: hard @@ -4082,13 +3551,6 @@ __metadata: languageName: node linkType: hard -"@jest/diff-sequences@npm:30.0.1": - version: 30.0.1 - resolution: "@jest/diff-sequences@npm:30.0.1" - checksum: 10c0/3a840404e6021725ef7f86b11f7b2d13dd02846481264db0e447ee33b7ee992134e402cdc8b8b0ac969d37c6c0183044e382dedee72001cdf50cfb3c8088de74 - languageName: node - linkType: hard - "@jest/diff-sequences@npm:30.4.0": version: 30.4.0 resolution: "@jest/diff-sequences@npm:30.4.0" @@ -4096,7 +3558,7 @@ __metadata: languageName: node linkType: hard -"@jest/environment-jsdom-abstract@npm:30.4.1": +"@jest/environment-jsdom-abstract@npm:30.4.1, @jest/environment-jsdom-abstract@npm:^30.0.0": version: 30.4.1 resolution: "@jest/environment-jsdom-abstract@npm:30.4.1" dependencies: @@ -4117,39 +3579,6 @@ __metadata: languageName: node linkType: hard -"@jest/environment-jsdom-abstract@npm:^30.0.0": - version: 30.2.0 - resolution: "@jest/environment-jsdom-abstract@npm:30.2.0" - dependencies: - "@jest/environment": "npm:30.2.0" - "@jest/fake-timers": "npm:30.2.0" - "@jest/types": "npm:30.2.0" - "@types/jsdom": "npm:^21.1.7" - "@types/node": "npm:*" - jest-mock: "npm:30.2.0" - jest-util: "npm:30.2.0" - peerDependencies: - canvas: ^3.0.0 - jsdom: "*" - peerDependenciesMeta: - canvas: - optional: true - checksum: 10c0/0f725308bd560fc53a518184c20ef9940aee44a8fc4d0ff9e37b2464673f201793401e27918c7e67d7640cbaee7a99eaeed90dbeaa0fc7aeb09cea27a1a2d3b4 - languageName: node - linkType: hard - -"@jest/environment@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/environment@npm:30.2.0" - dependencies: - "@jest/fake-timers": "npm:30.2.0" - "@jest/types": "npm:30.2.0" - "@types/node": "npm:*" - jest-mock: "npm:30.2.0" - checksum: 10c0/56a9f1b82ee2623c13eece7d58188be35bd6e5c3c4ee3fbaedb1c4d7242c1b57d020f1a26ab127fa9496fdc11306c7ad1c4a2b7eba1fc726a27ae0873e907e47 - languageName: node - linkType: hard - "@jest/environment@npm:30.4.1": version: 30.4.1 resolution: "@jest/environment@npm:30.4.1" @@ -4162,15 +3591,6 @@ __metadata: languageName: node linkType: hard -"@jest/expect-utils@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/expect-utils@npm:30.2.0" - dependencies: - "@jest/get-type": "npm:30.1.0" - checksum: 10c0/e25a809ff2ab62292e2569f8d97f89168d27d078903f0306af5f70f1771b7efc62c458eca1dcb491ab1ed96cefedf403bd7acbb050c997105bc29b220fd9d61a - languageName: node - linkType: hard - "@jest/expect-utils@npm:30.4.1": version: 30.4.1 resolution: "@jest/expect-utils@npm:30.4.1" @@ -4190,20 +3610,6 @@ __metadata: languageName: node linkType: hard -"@jest/fake-timers@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/fake-timers@npm:30.2.0" - dependencies: - "@jest/types": "npm:30.2.0" - "@sinonjs/fake-timers": "npm:^13.0.0" - "@types/node": "npm:*" - jest-message-util: "npm:30.2.0" - jest-mock: "npm:30.2.0" - jest-util: "npm:30.2.0" - checksum: 10c0/b29505528e546f08489535814f7dfcd3a2318660b987d605f44d41672e91a0c8c0dfc01e3dd1302e66e511409c3012d41e2e16703b214502b54ccc023773e3dc - languageName: node - linkType: hard - "@jest/fake-timers@npm:30.4.1": version: 30.4.1 resolution: "@jest/fake-timers@npm:30.4.1" @@ -4237,16 +3643,6 @@ __metadata: languageName: node linkType: hard -"@jest/pattern@npm:30.0.1": - version: 30.0.1 - resolution: "@jest/pattern@npm:30.0.1" - dependencies: - "@types/node": "npm:*" - jest-regex-util: "npm:30.0.1" - checksum: 10c0/32c5a7bfb6c591f004dac0ed36d645002ed168971e4c89bd915d1577031672870032594767557b855c5bc330aa1e39a2f54bf150d2ee88a7a0886e9cb65318bc - languageName: node - linkType: hard - "@jest/pattern@npm:30.4.0": version: 30.4.0 resolution: "@jest/pattern@npm:30.4.0" @@ -4293,15 +3689,6 @@ __metadata: languageName: node linkType: hard -"@jest/schemas@npm:30.0.5": - version: 30.0.5 - resolution: "@jest/schemas@npm:30.0.5" - dependencies: - "@sinclair/typebox": "npm:^0.34.0" - checksum: 10c0/449dcd7ec5c6505e9ac3169d1143937e67044ae3e66a729ce4baf31812dfd30535f2b3b2934393c97cfdf5984ff581120e6b38f62b8560c8b5b7cc07f4175f65 - languageName: node - linkType: hard - "@jest/schemas@npm:30.4.1": version: 30.4.1 resolution: "@jest/schemas@npm:30.4.1" @@ -4380,21 +3767,6 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:30.2.0": - version: 30.2.0 - resolution: "@jest/types@npm:30.2.0" - dependencies: - "@jest/pattern": "npm:30.0.1" - "@jest/schemas": "npm:30.0.5" - "@types/istanbul-lib-coverage": "npm:^2.0.6" - "@types/istanbul-reports": "npm:^3.0.4" - "@types/node": "npm:*" - "@types/yargs": "npm:^17.0.33" - chalk: "npm:^4.1.2" - checksum: 10c0/ae121f6963bd9ed1cd9651db7be91bf14c05bff0d0eec4fca9fecf586bea4005e8f1de8cc9b8ef72e424ea96a309d123bef510b55a6a17a3b4b91a39d775e5cd - languageName: node - linkType: hard - "@jest/types@npm:30.4.1": version: 30.4.1 resolution: "@jest/types@npm:30.4.1" @@ -4430,7 +3802,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": +"@jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.2 resolution: "@jridgewell/resolve-uri@npm:3.1.2" checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e @@ -4447,23 +3819,13 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0, @jridgewell/sourcemap-codec@npm:^1.5.5": +"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0, @jridgewell/sourcemap-codec@npm:^1.5.5": version: 1.5.5 resolution: "@jridgewell/sourcemap-codec@npm:1.5.5" checksum: 10c0/f9e538f302b63c0ebc06eecb1dd9918dd4289ed36147a0ddce35d6ea4d7ebbda243cda7b2213b6a5e1d8087a298d5cf630fb2bd39329cdecb82017023f6081a0 languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:0.3.9": - version: 0.3.9 - resolution: "@jridgewell/trace-mapping@npm:0.3.9" - dependencies: - "@jridgewell/resolve-uri": "npm:^3.0.3" - "@jridgewell/sourcemap-codec": "npm:^1.4.10" - checksum: 10c0/fa425b606d7c7ee5bfa6a31a7b050dd5814b4082f318e0e4190f991902181b4330f43f4805db1dd4f2433fd0ed9cc7a7b9c2683f1deeab1df1b0a98b1e24055b - languageName: node - linkType: hard - "@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.28": version: 0.3.31 resolution: "@jridgewell/trace-mapping@npm:0.3.31" @@ -4474,6 +3836,15 @@ __metadata: languageName: node linkType: hard +"@jsonjoy.com/base64@npm:17.67.0": + version: 17.67.0 + resolution: "@jsonjoy.com/base64@npm:17.67.0" + peerDependencies: + tslib: 2 + checksum: 10c0/d9616ec1ac0ea6aa455968b1f96f2d48ce38a2b1835922a909a55147d7b8cff3d648d45e9efe6781c6926beb5f04dc41c75ce548b6b84141b14bc122893e16ee + languageName: node + linkType: hard + "@jsonjoy.com/base64@npm:^1.1.2": version: 1.1.2 resolution: "@jsonjoy.com/base64@npm:1.1.2" @@ -4483,6 +3854,15 @@ __metadata: languageName: node linkType: hard +"@jsonjoy.com/buffers@npm:17.67.0, @jsonjoy.com/buffers@npm:^17.65.0": + version: 17.67.0 + resolution: "@jsonjoy.com/buffers@npm:17.67.0" + peerDependencies: + tslib: 2 + checksum: 10c0/ee46d3ea6c2dee4dd5dffd8b156745baeecfe796c7bb3f091f9fe64c402aca5e4d86ba3d736545682f919303fb15359c1f00d41ac91ea1b5d4edbbe74f540d35 + languageName: node + linkType: hard + "@jsonjoy.com/buffers@npm:^1.0.0, @jsonjoy.com/buffers@npm:^1.2.0": version: 1.2.1 resolution: "@jsonjoy.com/buffers@npm:1.2.1" @@ -4492,6 +3872,15 @@ __metadata: languageName: node linkType: hard +"@jsonjoy.com/codegen@npm:17.67.0": + version: 17.67.0 + resolution: "@jsonjoy.com/codegen@npm:17.67.0" + peerDependencies: + tslib: 2 + checksum: 10c0/3cc529377cc315acf373dc52dbd39d56285b31ba8ca90a4447230e37e405372cc13bed7df638dc81f9071ff8f4eb8e825217987397d80182d08ded761e609a93 + languageName: node + linkType: hard + "@jsonjoy.com/codegen@npm:^1.0.0": version: 1.0.0 resolution: "@jsonjoy.com/codegen@npm:1.0.0" @@ -4501,6 +3890,109 @@ __metadata: languageName: node linkType: hard +"@jsonjoy.com/fs-core@npm:4.57.6": + version: 4.57.6 + resolution: "@jsonjoy.com/fs-core@npm:4.57.6" + dependencies: + "@jsonjoy.com/fs-node-builtins": "npm:4.57.6" + "@jsonjoy.com/fs-node-utils": "npm:4.57.6" + thingies: "npm:^2.5.0" + peerDependencies: + tslib: 2 + checksum: 10c0/31969b3459c0f220862fd5f5dda98910ef61dd36aab9bd43300f57465e5e54d3b2b988332f95c540bfccc3214080e5cf9c3bf9fa31ea159654f1d22920f50241 + languageName: node + linkType: hard + +"@jsonjoy.com/fs-fsa@npm:4.57.6": + version: 4.57.6 + resolution: "@jsonjoy.com/fs-fsa@npm:4.57.6" + dependencies: + "@jsonjoy.com/fs-core": "npm:4.57.6" + "@jsonjoy.com/fs-node-builtins": "npm:4.57.6" + "@jsonjoy.com/fs-node-utils": "npm:4.57.6" + thingies: "npm:^2.5.0" + peerDependencies: + tslib: 2 + checksum: 10c0/99c89c296a086aebc1347ec13827a8c7fb27b8fbc3c37922f2d14550778d897f9d3416fc4e2de8ed487617878e62a2a8fd5ae296129e29e677bff783f1f9e3d1 + languageName: node + linkType: hard + +"@jsonjoy.com/fs-node-builtins@npm:4.57.6": + version: 4.57.6 + resolution: "@jsonjoy.com/fs-node-builtins@npm:4.57.6" + peerDependencies: + tslib: 2 + checksum: 10c0/5bd06bb8ff4a3740e2843e71b5729432b1058ffefb545113d6ddbbd3a3ffbf6d67d7fa2b8042f048d46368635afeede1d3efe0e9f0d08be14912f162ea87e29b + languageName: node + linkType: hard + +"@jsonjoy.com/fs-node-to-fsa@npm:4.57.6": + version: 4.57.6 + resolution: "@jsonjoy.com/fs-node-to-fsa@npm:4.57.6" + dependencies: + "@jsonjoy.com/fs-fsa": "npm:4.57.6" + "@jsonjoy.com/fs-node-builtins": "npm:4.57.6" + "@jsonjoy.com/fs-node-utils": "npm:4.57.6" + peerDependencies: + tslib: 2 + checksum: 10c0/024712b4ed6527ea79683e358a94be0dd51884b5ecf11da5b11dd848c8f9705f8b010271fa8ffb2090899737c0330d97d376b41477fff188b3982d9a7e64c0f8 + languageName: node + linkType: hard + +"@jsonjoy.com/fs-node-utils@npm:4.57.6": + version: 4.57.6 + resolution: "@jsonjoy.com/fs-node-utils@npm:4.57.6" + dependencies: + "@jsonjoy.com/fs-node-builtins": "npm:4.57.6" + peerDependencies: + tslib: 2 + checksum: 10c0/001f4dc2e6104cd7890c98b26b138f728b8a9f3776392b28e9b3497f3aa16e8ae6561943cb9dd8155446755025998ba24184a2cc0eeda60bae6670300c62a9fe + languageName: node + linkType: hard + +"@jsonjoy.com/fs-node@npm:4.57.6": + version: 4.57.6 + resolution: "@jsonjoy.com/fs-node@npm:4.57.6" + dependencies: + "@jsonjoy.com/fs-core": "npm:4.57.6" + "@jsonjoy.com/fs-node-builtins": "npm:4.57.6" + "@jsonjoy.com/fs-node-utils": "npm:4.57.6" + "@jsonjoy.com/fs-print": "npm:4.57.6" + "@jsonjoy.com/fs-snapshot": "npm:4.57.6" + glob-to-regex.js: "npm:^1.0.0" + thingies: "npm:^2.5.0" + peerDependencies: + tslib: 2 + checksum: 10c0/b8d3b4a33ce4345bf56fe93c6f1c95046f0cea4bb366f59873cbdc61ed4d97d0c25a93cb3d23a0558da0c98c4d604b8da47357b678d62d41a81a8518f22ead83 + languageName: node + linkType: hard + +"@jsonjoy.com/fs-print@npm:4.57.6": + version: 4.57.6 + resolution: "@jsonjoy.com/fs-print@npm:4.57.6" + dependencies: + "@jsonjoy.com/fs-node-utils": "npm:4.57.6" + tree-dump: "npm:^1.1.0" + peerDependencies: + tslib: 2 + checksum: 10c0/b5ea71dd618c7a083d6683e1edf4d7034d9a764b42483bb4e75d4c700eec74d39d11440d389e2843bc9a9d0b37ee56bd1f0f8053eb3d4882cd75cdfd3a82b0d1 + languageName: node + linkType: hard + +"@jsonjoy.com/fs-snapshot@npm:4.57.6": + version: 4.57.6 + resolution: "@jsonjoy.com/fs-snapshot@npm:4.57.6" + dependencies: + "@jsonjoy.com/buffers": "npm:^17.65.0" + "@jsonjoy.com/fs-node-utils": "npm:4.57.6" + "@jsonjoy.com/json-pack": "npm:^17.65.0" + "@jsonjoy.com/util": "npm:^17.65.0" + peerDependencies: + tslib: 2 + checksum: 10c0/07465463d9e2c90a811511976f38fc1374bf397973d1b4e3eff395ca490ed2005a6e215726be9be1e0a69689957b0cdeed5a49bd23983d427d06847b8885af9e + languageName: node + linkType: hard + "@jsonjoy.com/json-pack@npm:^1.11.0": version: 1.21.0 resolution: "@jsonjoy.com/json-pack@npm:1.21.0" @@ -4519,6 +4011,35 @@ __metadata: languageName: node linkType: hard +"@jsonjoy.com/json-pack@npm:^17.65.0": + version: 17.67.0 + resolution: "@jsonjoy.com/json-pack@npm:17.67.0" + dependencies: + "@jsonjoy.com/base64": "npm:17.67.0" + "@jsonjoy.com/buffers": "npm:17.67.0" + "@jsonjoy.com/codegen": "npm:17.67.0" + "@jsonjoy.com/json-pointer": "npm:17.67.0" + "@jsonjoy.com/util": "npm:17.67.0" + hyperdyperid: "npm:^1.2.0" + thingies: "npm:^2.5.0" + tree-dump: "npm:^1.1.0" + peerDependencies: + tslib: 2 + checksum: 10c0/fee56d024c84f031ef011a85ccca071c73b8a0739506083bd3dc7a17c720a498599f285e79082a9626314324ea938f189d18d47a03341cb76286ca2e7098bf53 + languageName: node + linkType: hard + +"@jsonjoy.com/json-pointer@npm:17.67.0": + version: 17.67.0 + resolution: "@jsonjoy.com/json-pointer@npm:17.67.0" + dependencies: + "@jsonjoy.com/util": "npm:17.67.0" + peerDependencies: + tslib: 2 + checksum: 10c0/763e0b1bc274390a605073b49e5bf55bdf386e784f5940d456faca958d90915b7d9a47dd9d58a08e2113f40167b0640d313897811680eb91630726920618fe7d + languageName: node + linkType: hard + "@jsonjoy.com/json-pointer@npm:^1.0.2": version: 1.0.2 resolution: "@jsonjoy.com/json-pointer@npm:1.0.2" @@ -4531,6 +4052,18 @@ __metadata: languageName: node linkType: hard +"@jsonjoy.com/util@npm:17.67.0, @jsonjoy.com/util@npm:^17.65.0": + version: 17.67.0 + resolution: "@jsonjoy.com/util@npm:17.67.0" + dependencies: + "@jsonjoy.com/buffers": "npm:17.67.0" + "@jsonjoy.com/codegen": "npm:17.67.0" + peerDependencies: + tslib: 2 + checksum: 10c0/44be53d94c99ce74a0eff1bb111f0ff4392a1226e34637321c8bc45b569da3f9e12db8b225eef3694c44b9fd2e9b800d7baf5ea0d38e1d7767bfcbef4fbf91b0 + languageName: node + linkType: hard + "@jsonjoy.com/util@npm:^1.9.0": version: 1.9.0 resolution: "@jsonjoy.com/util@npm:1.9.0" @@ -4670,63 +4203,63 @@ __metadata: languageName: node linkType: hard -"@listr2/prompt-adapter-inquirer@npm:3.0.5": - version: 3.0.5 - resolution: "@listr2/prompt-adapter-inquirer@npm:3.0.5" +"@listr2/prompt-adapter-inquirer@npm:4.2.3": + version: 4.2.3 + resolution: "@listr2/prompt-adapter-inquirer@npm:4.2.3" dependencies: - "@inquirer/type": "npm:^3.0.8" + "@inquirer/type": "npm:^4.0.5" peerDependencies: - "@inquirer/prompts": ">= 3 < 8" - listr2: 9.0.5 - checksum: 10c0/c85a0eee6c610163be200c3cc9e51847ee95a595685835eb5fa3267f0c1107905aae50b9123d970797851f3acb456ad1fcf68c86022b56d5b3f42b757cec27b7 + "@inquirer/prompts": ">= 3 < 9" + listr2: 10.2.1 + checksum: 10c0/a050bd267c86f64454f3001068ec7ae27d408c3d2ecdc9f4f70425c953564fa7231196082cbdf0559b5c112dbcd8d33869f5b4e5be29e499b40afa8b69208cdc languageName: node linkType: hard -"@lmdb/lmdb-darwin-arm64@npm:3.5.1": - version: 3.5.1 - resolution: "@lmdb/lmdb-darwin-arm64@npm:3.5.1" +"@lmdb/lmdb-darwin-arm64@npm:3.5.4": + version: 3.5.4 + resolution: "@lmdb/lmdb-darwin-arm64@npm:3.5.4" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@lmdb/lmdb-darwin-x64@npm:3.5.1": - version: 3.5.1 - resolution: "@lmdb/lmdb-darwin-x64@npm:3.5.1" +"@lmdb/lmdb-darwin-x64@npm:3.5.4": + version: 3.5.4 + resolution: "@lmdb/lmdb-darwin-x64@npm:3.5.4" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@lmdb/lmdb-linux-arm64@npm:3.5.1": - version: 3.5.1 - resolution: "@lmdb/lmdb-linux-arm64@npm:3.5.1" +"@lmdb/lmdb-linux-arm64@npm:3.5.4": + version: 3.5.4 + resolution: "@lmdb/lmdb-linux-arm64@npm:3.5.4" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@lmdb/lmdb-linux-arm@npm:3.5.1": - version: 3.5.1 - resolution: "@lmdb/lmdb-linux-arm@npm:3.5.1" +"@lmdb/lmdb-linux-arm@npm:3.5.4": + version: 3.5.4 + resolution: "@lmdb/lmdb-linux-arm@npm:3.5.4" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@lmdb/lmdb-linux-x64@npm:3.5.1": - version: 3.5.1 - resolution: "@lmdb/lmdb-linux-x64@npm:3.5.1" +"@lmdb/lmdb-linux-x64@npm:3.5.4": + version: 3.5.4 + resolution: "@lmdb/lmdb-linux-x64@npm:3.5.4" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@lmdb/lmdb-win32-arm64@npm:3.5.1": - version: 3.5.1 - resolution: "@lmdb/lmdb-win32-arm64@npm:3.5.1" +"@lmdb/lmdb-win32-arm64@npm:3.5.4": + version: 3.5.4 + resolution: "@lmdb/lmdb-win32-arm64@npm:3.5.4" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@lmdb/lmdb-win32-x64@npm:3.5.1": - version: 3.5.1 - resolution: "@lmdb/lmdb-win32-x64@npm:3.5.1" +"@lmdb/lmdb-win32-x64@npm:3.5.4": + version: 3.5.4 + resolution: "@lmdb/lmdb-win32-x64@npm:3.5.4" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -4755,9 +4288,9 @@ __metadata: languageName: node linkType: hard -"@modelcontextprotocol/sdk@npm:1.26.0": - version: 1.26.0 - resolution: "@modelcontextprotocol/sdk@npm:1.26.0" +"@modelcontextprotocol/sdk@npm:1.29.0": + version: 1.29.0 + resolution: "@modelcontextprotocol/sdk@npm:1.29.0" dependencies: "@hono/node-server": "npm:^1.19.9" ajv: "npm:^8.17.1" @@ -4784,48 +4317,48 @@ __metadata: optional: true zod: optional: false - checksum: 10c0/b4098789d9fbbc4d9e0df240b18ba28867e4990ca4305322d6724fd03bba6685bbf21b39e02578b959da620b5a704ab1d565d3dbf377778ee9e4a0677b790728 + checksum: 10c0/7c4bc339205b1652330cd4e6b121cc859079655f2b9c0506bbb15563ba0d07924bda3d949705530532db7f4d2cb86d633dc8f92bc32803d97c7bece2ac63e29f languageName: node linkType: hard -"@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.3": - version: 3.0.3 - resolution: "@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.3" +"@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.4": + version: 3.0.4 + resolution: "@msgpackr-extract/msgpackr-extract-darwin-arm64@npm:3.0.4" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@msgpackr-extract/msgpackr-extract-darwin-x64@npm:3.0.3": - version: 3.0.3 - resolution: "@msgpackr-extract/msgpackr-extract-darwin-x64@npm:3.0.3" +"@msgpackr-extract/msgpackr-extract-darwin-x64@npm:3.0.4": + version: 3.0.4 + resolution: "@msgpackr-extract/msgpackr-extract-darwin-x64@npm:3.0.4" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@msgpackr-extract/msgpackr-extract-linux-arm64@npm:3.0.3": - version: 3.0.3 - resolution: "@msgpackr-extract/msgpackr-extract-linux-arm64@npm:3.0.3" +"@msgpackr-extract/msgpackr-extract-linux-arm64@npm:3.0.4": + version: 3.0.4 + resolution: "@msgpackr-extract/msgpackr-extract-linux-arm64@npm:3.0.4" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@msgpackr-extract/msgpackr-extract-linux-arm@npm:3.0.3": - version: 3.0.3 - resolution: "@msgpackr-extract/msgpackr-extract-linux-arm@npm:3.0.3" +"@msgpackr-extract/msgpackr-extract-linux-arm@npm:3.0.4": + version: 3.0.4 + resolution: "@msgpackr-extract/msgpackr-extract-linux-arm@npm:3.0.4" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@msgpackr-extract/msgpackr-extract-linux-x64@npm:3.0.3": - version: 3.0.3 - resolution: "@msgpackr-extract/msgpackr-extract-linux-x64@npm:3.0.3" +"@msgpackr-extract/msgpackr-extract-linux-x64@npm:3.0.4": + version: 3.0.4 + resolution: "@msgpackr-extract/msgpackr-extract-linux-x64@npm:3.0.4" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@msgpackr-extract/msgpackr-extract-win32-x64@npm:3.0.3": - version: 3.0.3 - resolution: "@msgpackr-extract/msgpackr-extract-win32-x64@npm:3.0.3" +"@msgpackr-extract/msgpackr-extract-win32-x64@npm:3.0.4": + version: 3.0.4 + resolution: "@msgpackr-extract/msgpackr-extract-win32-x64@npm:3.0.4" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -5009,36 +4542,26 @@ __metadata: languageName: node linkType: hard -"@napi-rs/wasm-runtime@npm:^0.2.11": - version: 0.2.12 - resolution: "@napi-rs/wasm-runtime@npm:0.2.12" - dependencies: - "@emnapi/core": "npm:^1.4.3" - "@emnapi/runtime": "npm:^1.4.3" - "@tybys/wasm-util": "npm:^0.10.0" - checksum: 10c0/6d07922c0613aab30c6a497f4df297ca7c54e5b480e00035e0209b872d5c6aab7162fc49477267556109c2c7ed1eb9c65a174e27e9b87568106a87b0a6e3ca7d - languageName: node - linkType: hard - -"@napi-rs/wasm-runtime@npm:^1.1.1": - version: 1.1.1 - resolution: "@napi-rs/wasm-runtime@npm:1.1.1" +"@napi-rs/wasm-runtime@npm:^1.1.4": + version: 1.1.4 + resolution: "@napi-rs/wasm-runtime@npm:1.1.4" dependencies: - "@emnapi/core": "npm:^1.7.1" - "@emnapi/runtime": "npm:^1.7.1" "@tybys/wasm-util": "npm:^0.10.1" - checksum: 10c0/04d57b67e80736e41fe44674a011878db0a8ad893f4d44abb9d3608debb7c174224cba2796ed5b0c1d367368159f3ca6be45f1c59222f70e32ddc880f803d447 + peerDependencies: + "@emnapi/core": ^1.7.1 + "@emnapi/runtime": ^1.7.1 + checksum: 10c0/2e88e1955258949ccf2d18c79975821ad38071b465ef126a5e14110977b97868867b016c1ad046e963cccc42c0bd9db6c8ff5fd1ebb61b87bb3487f339041658 languageName: node linkType: hard -"@ngtools/webpack@npm:21.2.14": - version: 21.2.14 - resolution: "@ngtools/webpack@npm:21.2.14" +"@ngtools/webpack@npm:22.0.0": + version: 22.0.0 + resolution: "@ngtools/webpack@npm:22.0.0" peerDependencies: - "@angular/compiler-cli": ^21.0.0 - typescript: ">=5.9 <6.0" + "@angular/compiler-cli": ^22.0.0 + typescript: ">=6.0 <6.1" webpack: ^5.54.0 - checksum: 10c0/93a6af06706a94416bbd5605266b0afb5fbb51c1bbc1d75a90bdd5bf67dd591452e2f8e8ffdd053813f2dfe51bae42849a13d7600b7e6a1f37058ff814ebfc0b + checksum: 10c0/5b273c481aee2e59aa4fefa7f264b483dd38c90c13bc658991ddb50dead0473241145723f0d6d2e28a06718aa015439b0dc98ac2d9090e5ed97f7c5b2b525097 languageName: node linkType: hard @@ -5076,29 +4599,16 @@ __metadata: languageName: node linkType: hard -"@npmcli/agent@npm:^3.0.0": - version: 3.0.0 - resolution: "@npmcli/agent@npm:3.0.0" - dependencies: - agent-base: "npm:^7.1.0" - http-proxy-agent: "npm:^7.0.0" - https-proxy-agent: "npm:^7.0.1" - lru-cache: "npm:^10.0.1" - socks-proxy-agent: "npm:^8.0.3" - checksum: 10c0/efe37b982f30740ee77696a80c196912c274ecd2cb243bc6ae7053a50c733ce0f6c09fda085145f33ecf453be19654acca74b69e81eaad4c90f00ccffe2f9271 - languageName: node - linkType: hard - "@npmcli/agent@npm:^4.0.0": - version: 4.0.0 - resolution: "@npmcli/agent@npm:4.0.0" + version: 4.0.2 + resolution: "@npmcli/agent@npm:4.0.2" dependencies: agent-base: "npm:^7.1.0" http-proxy-agent: "npm:^7.0.0" https-proxy-agent: "npm:^7.0.1" lru-cache: "npm:^11.2.1" socks-proxy-agent: "npm:^8.0.3" - checksum: 10c0/f7b5ce0f3dd42c3f8c6546e8433573d8049f67ef11ec22aa4704bc41483122f68bf97752e06302c455ead667af5cb753e6a09bff06632bc465c1cfd4c4b75a53 + checksum: 10c0/7166c50776ff40dc79295a338da8649a131448f9f2b88694c0826b0e692c0f984402ab8486a5d7458cf0cb272f9130fea3d4aa2a13a26cc07bc10f29abd50ec3 languageName: node linkType: hard @@ -5146,15 +4656,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/fs@npm:^4.0.0": - version: 4.0.0 - resolution: "@npmcli/fs@npm:4.0.0" - dependencies: - semver: "npm:^7.3.5" - checksum: 10c0/c90935d5ce670c87b6b14fab04a965a3b8137e585f8b2a6257263bd7f97756dd736cb165bb470e5156a9e718ecd99413dccc54b1138c1a46d6ec7cf325982fe5 - languageName: node - linkType: hard - "@npmcli/fs@npm:^5.0.0": version: 5.0.0 resolution: "@npmcli/fs@npm:5.0.0" @@ -5165,18 +4666,18 @@ __metadata: linkType: hard "@npmcli/git@npm:^7.0.0": - version: 7.0.1 - resolution: "@npmcli/git@npm:7.0.1" + version: 7.0.2 + resolution: "@npmcli/git@npm:7.0.2" dependencies: + "@gar/promise-retry": "npm:^1.0.0" "@npmcli/promise-spawn": "npm:^9.0.0" ini: "npm:^6.0.0" lru-cache: "npm:^11.2.1" npm-pick-manifest: "npm:^11.0.1" proc-log: "npm:^6.0.0" - promise-retry: "npm:^2.0.1" semver: "npm:^7.3.5" which: "npm:^6.0.0" - checksum: 10c0/ddd71ca42387463e5bc7d1cdbff0e5991ac93d96d39e078ea81d4600dc2257d062377d350744da0931be89e94e72a57ef2e3f679beb0c1d45a65129806bbd565 + checksum: 10c0/1936471c3188aa470d0c0dd4d49724bf144e381d122252d001475d69a96cd9de950936f55fec8c6a673a47cf607b11a662fc8b8a45c67d5c37c795b07d2be8e9 languageName: node linkType: hard @@ -5231,22 +4732,7 @@ __metadata: languageName: node linkType: hard -"@npmcli/package-json@npm:^7.0.0": - version: 7.0.4 - resolution: "@npmcli/package-json@npm:7.0.4" - dependencies: - "@npmcli/git": "npm:^7.0.0" - glob: "npm:^13.0.0" - hosted-git-info: "npm:^9.0.0" - json-parse-even-better-errors: "npm:^5.0.0" - proc-log: "npm:^6.0.0" - semver: "npm:^7.5.3" - validate-npm-package-license: "npm:^3.0.4" - checksum: 10c0/6643e62ea2c0289053cb7741edc26764a84698ddacf9d0b77ded250f02c04a560062eb1be6180afe30c2764978435c7120054e920128ab774bee48f0500a0c1d - languageName: node - linkType: hard - -"@npmcli/package-json@npm:^7.0.5": +"@npmcli/package-json@npm:^7.0.0, @npmcli/package-json@npm:^7.0.5": version: 7.0.5 resolution: "@npmcli/package-json@npm:7.0.5" dependencies: @@ -5286,21 +4772,7 @@ __metadata: languageName: node linkType: hard -"@npmcli/run-script@npm:^10.0.0": - version: 10.0.3 - resolution: "@npmcli/run-script@npm:10.0.3" - dependencies: - "@npmcli/node-gyp": "npm:^5.0.0" - "@npmcli/package-json": "npm:^7.0.0" - "@npmcli/promise-spawn": "npm:^9.0.0" - node-gyp: "npm:^12.1.0" - proc-log: "npm:^6.0.0" - which: "npm:^6.0.0" - checksum: 10c0/227483417d1f36011d35d1b868cd7a9c615553f195a86a282ca3c273e89f38f172fc1fcbb8f1635d419c861679570887874a37f9f21350e0b6fc813930224358 - languageName: node - linkType: hard - -"@npmcli/run-script@npm:^10.0.4": +"@npmcli/run-script@npm:^10.0.0, @npmcli/run-script@npm:^10.0.4": version: 10.0.4 resolution: "@npmcli/run-script@npm:10.0.4" dependencies: @@ -5335,13 +4807,13 @@ __metadata: languageName: node linkType: hard -"@octokit/endpoint@npm:^11.0.2": - version: 11.0.2 - resolution: "@octokit/endpoint@npm:11.0.2" +"@octokit/endpoint@npm:^11.0.3": + version: 11.0.3 + resolution: "@octokit/endpoint@npm:11.0.3" dependencies: "@octokit/types": "npm:^16.0.0" universal-user-agent: "npm:^7.0.2" - checksum: 10c0/878ac12fbccff772968689b4744590677c5a3f12bebe31544832c84761bf1c6be521e8a3af07abffc9455a74dd4d1f350d714fc46fd7ce14a0a2b5f2d4e3a84c + checksum: 10c0/3f9b67e6923ece5009aebb0dcbae5837fb574bc422561424049a43ead7fea6f132234edb72239d6ec067cf734937a608e4081af81c109de2cb754528f0d00520 languageName: node linkType: hard @@ -5411,15 +4883,16 @@ __metadata: linkType: hard "@octokit/request@npm:^10.0.6": - version: 10.0.7 - resolution: "@octokit/request@npm:10.0.7" + version: 10.0.10 + resolution: "@octokit/request@npm:10.0.10" dependencies: - "@octokit/endpoint": "npm:^11.0.2" + "@octokit/endpoint": "npm:^11.0.3" "@octokit/request-error": "npm:^7.0.2" "@octokit/types": "npm:^16.0.0" - fast-content-type-parse: "npm:^3.0.0" + content-type: "npm:^2.0.0" + json-with-bigint: "npm:^3.5.3" universal-user-agent: "npm:^7.0.2" - checksum: 10c0/f789a75bf681b204ccd3d538921db662e148ed980005158d80ec4f16811e9ab73f375d4f30ef697852abd748a62f025060ea1b0c5198ec9c2e8d04e355064390 + checksum: 10c0/1d93f508dbc903282d92558168736c6d1a8c04c511e6d7ebe67594c4cfe93f711d67b5628e9f4e8f194c7ef124e066196308e638e93ad33c73ceb0f4b4398eae languageName: node linkType: hard @@ -5444,133 +4917,126 @@ __metadata: languageName: node linkType: hard -"@oxc-project/types@npm:=0.113.0": - version: 0.113.0 - resolution: "@oxc-project/types@npm:0.113.0" - checksum: 10c0/a5172494732d6f79eaa73246065e0c5ecfff94900191b930a6bc28f0eaced91b93276a971fdf088db902775ed3d3ea7dca9f45fa2795b69ec8ccc0c35dacaa0d +"@oxc-project/types@npm:=0.133.0": + version: 0.133.0 + resolution: "@oxc-project/types@npm:0.133.0" + checksum: 10c0/70c57ba58644f7ec217b670c301801f4d06995f4ccdba6b2bd106ea3e5ee49d616573e6ef8d55530b87571a960696543687f3850e87ad173d3f88965c30cdd63 languageName: node linkType: hard -"@oxc-project/types@npm:=0.122.0": - version: 0.122.0 - resolution: "@oxc-project/types@npm:0.122.0" - checksum: 10c0/2c64dd0db949426fd0c86d4f61eded5902e7b7b166356a825bd3a248aeaa29a495f78918f66ab78e99644b67bd7556096e2a8123cec74ca4141c604f424f4f74 +"@parcel/watcher-android-arm64@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-android-arm64@npm:2.5.6" + conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@parcel/watcher-android-arm64@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-android-arm64@npm:2.5.1" - conditions: os=android & cpu=arm64 +"@parcel/watcher-darwin-arm64@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-darwin-arm64@npm:2.5.6" + conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@parcel/watcher-darwin-arm64@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-darwin-arm64@npm:2.5.1" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@parcel/watcher-darwin-x64@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-darwin-x64@npm:2.5.1" +"@parcel/watcher-darwin-x64@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-darwin-x64@npm:2.5.6" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@parcel/watcher-freebsd-x64@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-freebsd-x64@npm:2.5.1" +"@parcel/watcher-freebsd-x64@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-freebsd-x64@npm:2.5.6" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@parcel/watcher-linux-arm-glibc@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-linux-arm-glibc@npm:2.5.1" +"@parcel/watcher-linux-arm-glibc@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-linux-arm-glibc@npm:2.5.6" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@parcel/watcher-linux-arm-musl@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-linux-arm-musl@npm:2.5.1" +"@parcel/watcher-linux-arm-musl@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-linux-arm-musl@npm:2.5.6" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@parcel/watcher-linux-arm64-glibc@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.5.1" +"@parcel/watcher-linux-arm64-glibc@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-linux-arm64-glibc@npm:2.5.6" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@parcel/watcher-linux-arm64-musl@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-linux-arm64-musl@npm:2.5.1" +"@parcel/watcher-linux-arm64-musl@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-linux-arm64-musl@npm:2.5.6" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@parcel/watcher-linux-x64-glibc@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-linux-x64-glibc@npm:2.5.1" +"@parcel/watcher-linux-x64-glibc@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-linux-x64-glibc@npm:2.5.6" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@parcel/watcher-linux-x64-musl@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-linux-x64-musl@npm:2.5.1" +"@parcel/watcher-linux-x64-musl@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-linux-x64-musl@npm:2.5.6" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@parcel/watcher-win32-arm64@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-win32-arm64@npm:2.5.1" +"@parcel/watcher-win32-arm64@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-win32-arm64@npm:2.5.6" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@parcel/watcher-win32-ia32@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-win32-ia32@npm:2.5.1" +"@parcel/watcher-win32-ia32@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-win32-ia32@npm:2.5.6" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@parcel/watcher-win32-x64@npm:2.5.1": - version: 2.5.1 - resolution: "@parcel/watcher-win32-x64@npm:2.5.1" +"@parcel/watcher-win32-x64@npm:2.5.6": + version: 2.5.6 + resolution: "@parcel/watcher-win32-x64@npm:2.5.6" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@parcel/watcher@npm:^2.4.1": - version: 2.5.1 - resolution: "@parcel/watcher@npm:2.5.1" - dependencies: - "@parcel/watcher-android-arm64": "npm:2.5.1" - "@parcel/watcher-darwin-arm64": "npm:2.5.1" - "@parcel/watcher-darwin-x64": "npm:2.5.1" - "@parcel/watcher-freebsd-x64": "npm:2.5.1" - "@parcel/watcher-linux-arm-glibc": "npm:2.5.1" - "@parcel/watcher-linux-arm-musl": "npm:2.5.1" - "@parcel/watcher-linux-arm64-glibc": "npm:2.5.1" - "@parcel/watcher-linux-arm64-musl": "npm:2.5.1" - "@parcel/watcher-linux-x64-glibc": "npm:2.5.1" - "@parcel/watcher-linux-x64-musl": "npm:2.5.1" - "@parcel/watcher-win32-arm64": "npm:2.5.1" - "@parcel/watcher-win32-ia32": "npm:2.5.1" - "@parcel/watcher-win32-x64": "npm:2.5.1" - detect-libc: "npm:^1.0.3" + version: 2.5.6 + resolution: "@parcel/watcher@npm:2.5.6" + dependencies: + "@parcel/watcher-android-arm64": "npm:2.5.6" + "@parcel/watcher-darwin-arm64": "npm:2.5.6" + "@parcel/watcher-darwin-x64": "npm:2.5.6" + "@parcel/watcher-freebsd-x64": "npm:2.5.6" + "@parcel/watcher-linux-arm-glibc": "npm:2.5.6" + "@parcel/watcher-linux-arm-musl": "npm:2.5.6" + "@parcel/watcher-linux-arm64-glibc": "npm:2.5.6" + "@parcel/watcher-linux-arm64-musl": "npm:2.5.6" + "@parcel/watcher-linux-x64-glibc": "npm:2.5.6" + "@parcel/watcher-linux-x64-musl": "npm:2.5.6" + "@parcel/watcher-win32-arm64": "npm:2.5.6" + "@parcel/watcher-win32-ia32": "npm:2.5.6" + "@parcel/watcher-win32-x64": "npm:2.5.6" + detect-libc: "npm:^2.0.3" is-glob: "npm:^4.0.3" - micromatch: "npm:^4.0.5" node-addon-api: "npm:^7.0.0" node-gyp: "npm:latest" + picomatch: "npm:^4.0.3" dependenciesMeta: "@parcel/watcher-android-arm64": optional: true @@ -5598,133 +5064,142 @@ __metadata: optional: true "@parcel/watcher-win32-x64": optional: true - checksum: 10c0/8f35073d0c0b34a63d4c8d2213482f0ebc6a25de7b2cdd415d19cb929964a793cb285b68d1d50bfb732b070b3c82a2fdb4eb9c250eab709a1cd9d63345455a82 + checksum: 10c0/1e1d91f92e94e4640089a7cead243b2b81ca9aa8e1c862a97a25f589e84fbf1ad93abeb503f325c43a8c0e024ae0e74b48ec42c1cd84e8e423a3a87d25ded4f2 languageName: node linkType: hard -"@peculiar/asn1-cms@npm:^2.6.0, @peculiar/asn1-cms@npm:^2.6.1": - version: 2.6.1 - resolution: "@peculiar/asn1-cms@npm:2.6.1" +"@peculiar/asn1-cms@npm:^2.6.0, @peculiar/asn1-cms@npm:^2.7.0": + version: 2.7.0 + resolution: "@peculiar/asn1-cms@npm:2.7.0" dependencies: - "@peculiar/asn1-schema": "npm:^2.6.0" - "@peculiar/asn1-x509": "npm:^2.6.1" - "@peculiar/asn1-x509-attr": "npm:^2.6.1" + "@peculiar/asn1-schema": "npm:^2.7.0" + "@peculiar/asn1-x509": "npm:^2.7.0" + "@peculiar/asn1-x509-attr": "npm:^2.7.0" asn1js: "npm:^3.0.6" tslib: "npm:^2.8.1" - checksum: 10c0/682e952fb35dec229bf54ecaff58bdf56281c1d718b5bcc2da103d67b5be302452c6275300c9f9fce1ed02f03792dab3ebe98c903117e0a5b0d9e5d861356280 + checksum: 10c0/0a19106037905b4e1c40798be2c1e2858403c888c8b314955272856a9c741cb87d29d424dd93733ecf7b34cf90ede74b7067a6e407ebf8d330b3ad3575af5471 languageName: node linkType: hard "@peculiar/asn1-csr@npm:^2.6.0": - version: 2.6.1 - resolution: "@peculiar/asn1-csr@npm:2.6.1" + version: 2.7.0 + resolution: "@peculiar/asn1-csr@npm:2.7.0" dependencies: - "@peculiar/asn1-schema": "npm:^2.6.0" - "@peculiar/asn1-x509": "npm:^2.6.1" + "@peculiar/asn1-schema": "npm:^2.7.0" + "@peculiar/asn1-x509": "npm:^2.7.0" asn1js: "npm:^3.0.6" tslib: "npm:^2.8.1" - checksum: 10c0/5ea1ef27bf3879c793acb0b370b9fc1cb45df244b4706cecf075e45b58d19d65e612f4777eb12aa37f2037c1c725e96543ab9caf41d5a92378c5069071deae1f + checksum: 10c0/4c8356a082e467fbd013f1108cfbac758ab6c435c20d4bdead690bcc98adbf2fa1c0293e9536491a19a2cee60730abdd4b95a433a6ab639b00c389f5fbb67880 languageName: node linkType: hard "@peculiar/asn1-ecc@npm:^2.6.0": - version: 2.6.1 - resolution: "@peculiar/asn1-ecc@npm:2.6.1" + version: 2.7.0 + resolution: "@peculiar/asn1-ecc@npm:2.7.0" dependencies: - "@peculiar/asn1-schema": "npm:^2.6.0" - "@peculiar/asn1-x509": "npm:^2.6.1" + "@peculiar/asn1-schema": "npm:^2.7.0" + "@peculiar/asn1-x509": "npm:^2.7.0" asn1js: "npm:^3.0.6" tslib: "npm:^2.8.1" - checksum: 10c0/7804600f12a8993085232839ea020f51a329a195ce991ebbce077668d9ee1e57301bf97d5ef9657bd81717888f36f51f7aed3a9eee59fe4345c55d04eff89927 + checksum: 10c0/f720e22e9b689450b786056f00f67141ab9a9edd3620c0f10215b2795c288052521262958ddb6c59608b463a53f3e2960381fa8878eda24f142bf7b385573aea languageName: node linkType: hard -"@peculiar/asn1-pfx@npm:^2.6.1": - version: 2.6.1 - resolution: "@peculiar/asn1-pfx@npm:2.6.1" +"@peculiar/asn1-pfx@npm:^2.7.0": + version: 2.7.0 + resolution: "@peculiar/asn1-pfx@npm:2.7.0" dependencies: - "@peculiar/asn1-cms": "npm:^2.6.1" - "@peculiar/asn1-pkcs8": "npm:^2.6.1" - "@peculiar/asn1-rsa": "npm:^2.6.1" - "@peculiar/asn1-schema": "npm:^2.6.0" + "@peculiar/asn1-cms": "npm:^2.7.0" + "@peculiar/asn1-pkcs8": "npm:^2.7.0" + "@peculiar/asn1-rsa": "npm:^2.7.0" + "@peculiar/asn1-schema": "npm:^2.7.0" asn1js: "npm:^3.0.6" tslib: "npm:^2.8.1" - checksum: 10c0/69c86ed339b945f7c77173da06207af71553a5b033cc1f2bde262085e7b5870543f358a29efd8981ca7247ec7f1c5d722a014cc0979679045909cb13e2ca527e + checksum: 10c0/0270b1b221a482aef32bafc6231be146eada138a84ca7e3071909a86a7e34dc788cbce31721acc3c9ed60e78334ed503d9b9498ca4cbd37e02bdef64b7beedfb languageName: node linkType: hard -"@peculiar/asn1-pkcs8@npm:^2.6.1": - version: 2.6.1 - resolution: "@peculiar/asn1-pkcs8@npm:2.6.1" +"@peculiar/asn1-pkcs8@npm:^2.7.0": + version: 2.7.0 + resolution: "@peculiar/asn1-pkcs8@npm:2.7.0" dependencies: - "@peculiar/asn1-schema": "npm:^2.6.0" - "@peculiar/asn1-x509": "npm:^2.6.1" + "@peculiar/asn1-schema": "npm:^2.7.0" + "@peculiar/asn1-x509": "npm:^2.7.0" asn1js: "npm:^3.0.6" tslib: "npm:^2.8.1" - checksum: 10c0/d712dc79ab877152f20c1772cbe065f5beb2a20e3dcae7892cc72f3227a1d3f7ae8eecba8bc29cf2b77cfdd8a01b0660f5390a416ca78ca7147f0e3c13d4d755 + checksum: 10c0/bdcd42465292c747888d9b63a51e0b0a7995a0acbc731f8c69f2a23b4ab99ca26a489dfd9508e7428482c748f094784407aa42c050d3c76812b65376c7b9146c languageName: node linkType: hard "@peculiar/asn1-pkcs9@npm:^2.6.0": - version: 2.6.1 - resolution: "@peculiar/asn1-pkcs9@npm:2.6.1" - dependencies: - "@peculiar/asn1-cms": "npm:^2.6.1" - "@peculiar/asn1-pfx": "npm:^2.6.1" - "@peculiar/asn1-pkcs8": "npm:^2.6.1" - "@peculiar/asn1-schema": "npm:^2.6.0" - "@peculiar/asn1-x509": "npm:^2.6.1" - "@peculiar/asn1-x509-attr": "npm:^2.6.1" + version: 2.7.0 + resolution: "@peculiar/asn1-pkcs9@npm:2.7.0" + dependencies: + "@peculiar/asn1-cms": "npm:^2.7.0" + "@peculiar/asn1-pfx": "npm:^2.7.0" + "@peculiar/asn1-pkcs8": "npm:^2.7.0" + "@peculiar/asn1-schema": "npm:^2.7.0" + "@peculiar/asn1-x509": "npm:^2.7.0" + "@peculiar/asn1-x509-attr": "npm:^2.7.0" asn1js: "npm:^3.0.6" tslib: "npm:^2.8.1" - checksum: 10c0/4a2f815bbeee3f65aea391d5e2287a19701d757d2781b3ecfd908a67028f2752796bd22f8ba3eb486911fcc34b52b0f7c1ff3e3b7d7f04ef58767be9ddbc851d + checksum: 10c0/ccf577be3e3b17a0f59bfe7e2dbd98c6735a2718dde98c2ab87a5ddd87ecd4acc77f1e916376036b4f7f72fe71ec2f2708f984f9e14cdbf583eae415c41a9e44 languageName: node linkType: hard -"@peculiar/asn1-rsa@npm:^2.6.0, @peculiar/asn1-rsa@npm:^2.6.1": - version: 2.6.1 - resolution: "@peculiar/asn1-rsa@npm:2.6.1" +"@peculiar/asn1-rsa@npm:^2.6.0, @peculiar/asn1-rsa@npm:^2.7.0": + version: 2.7.0 + resolution: "@peculiar/asn1-rsa@npm:2.7.0" dependencies: - "@peculiar/asn1-schema": "npm:^2.6.0" - "@peculiar/asn1-x509": "npm:^2.6.1" + "@peculiar/asn1-schema": "npm:^2.7.0" + "@peculiar/asn1-x509": "npm:^2.7.0" asn1js: "npm:^3.0.6" tslib: "npm:^2.8.1" - checksum: 10c0/4d7c71c5bddf7be3b0270c4d95b8274a392185cad4939a7a837d9c4c612601fee1a1ccabe414383b26629fb2013608e60a58ecd665c371617c1f177431a88ff2 + checksum: 10c0/14f6e3d658a8013bfdb6688f3a0fb19db6a54e18f328c144865991735a5394ab7b4d134fc15911c6904d6178d7a4564ee24e59265f8a68ff4619d429b91947c1 languageName: node linkType: hard -"@peculiar/asn1-schema@npm:^2.6.0": - version: 2.6.0 - resolution: "@peculiar/asn1-schema@npm:2.6.0" +"@peculiar/asn1-schema@npm:^2.6.0, @peculiar/asn1-schema@npm:^2.7.0": + version: 2.7.0 + resolution: "@peculiar/asn1-schema@npm:2.7.0" dependencies: + "@peculiar/utils": "npm:^2.0.2" asn1js: "npm:^3.0.6" - pvtsutils: "npm:^1.3.6" tslib: "npm:^2.8.1" - checksum: 10c0/8c283b10a2e4aca4cb20d242cde773c9a798ea15a6c221d1474ef483e182d48195aeb5dde3f7b518f236eceb7808ae4438539d41a3aa9ed6d20aa4d36a21a0c2 + checksum: 10c0/6d799b62e8e9d7eed63a3044201ced4efef923011216c17da017a568bdb3c0f56abcea24d41df24916d1731e4a6920f8d84176f3e044f44f6541c83ae31fe670 languageName: node linkType: hard -"@peculiar/asn1-x509-attr@npm:^2.6.1": - version: 2.6.1 - resolution: "@peculiar/asn1-x509-attr@npm:2.6.1" +"@peculiar/asn1-x509-attr@npm:^2.7.0": + version: 2.7.0 + resolution: "@peculiar/asn1-x509-attr@npm:2.7.0" dependencies: - "@peculiar/asn1-schema": "npm:^2.6.0" - "@peculiar/asn1-x509": "npm:^2.6.1" + "@peculiar/asn1-schema": "npm:^2.7.0" + "@peculiar/asn1-x509": "npm:^2.7.0" asn1js: "npm:^3.0.6" tslib: "npm:^2.8.1" - checksum: 10c0/de8634ec12ef34b430e5a458151e856f954e15fe9e08d056dca51db6962e849a951820ab66d291e2452799576c44221b40087b9350dc3728d3770a46fcdeffc5 + checksum: 10c0/c76633785874f08d3b667bae30c09efac4f83c11cbb9bf39c83f9b89df11753b1b2e8071a3e168ff1549cf6f30cf008c759bf95d1836e312cc1254355c0a62a6 languageName: node linkType: hard -"@peculiar/asn1-x509@npm:^2.6.0, @peculiar/asn1-x509@npm:^2.6.1": - version: 2.6.1 - resolution: "@peculiar/asn1-x509@npm:2.6.1" +"@peculiar/asn1-x509@npm:^2.6.0, @peculiar/asn1-x509@npm:^2.7.0": + version: 2.7.0 + resolution: "@peculiar/asn1-x509@npm:2.7.0" dependencies: - "@peculiar/asn1-schema": "npm:^2.6.0" + "@peculiar/asn1-schema": "npm:^2.7.0" + "@peculiar/utils": "npm:^2.0.2" asn1js: "npm:^3.0.6" - pvtsutils: "npm:^1.3.6" tslib: "npm:^2.8.1" - checksum: 10c0/2e73a0ce6521eeb2d876e0b52e9fae2de4e2d183be5fba77d5fae9b7724de446d02c0b4e5fb04d4fedb50eed0de842f29f4d7cf2e998eaed6a2d2952f5c52d2c + checksum: 10c0/095d1b5fd0dfb9ba9cffe5ce9fad31173f5184896d7d51270bc174745c5c6720f37ec83c8ac7b1b6db7100a94c550045d9ad37ce8f162d19cc93ebce6620f625 + languageName: node + linkType: hard + +"@peculiar/utils@npm:^2.0.2": + version: 2.0.3 + resolution: "@peculiar/utils@npm:2.0.3" + dependencies: + tslib: "npm:^2.8.1" + checksum: 10c0/e111a51c83334d6ff3c96b993ed0d718210620f3ad176853a4bf229f1cf4cd14e9388075318351b188862d34d2192d80f206f6bea53aa1459df3ec638cbcdbd5 languageName: node linkType: hard @@ -5754,10 +5229,27 @@ __metadata: languageName: node linkType: hard -"@pkgr/core@npm:^0.2.9": - version: 0.2.9 - resolution: "@pkgr/core@npm:0.2.9" - checksum: 10c0/ac8e4e8138b1a7a4ac6282873aef7389c352f1f8b577b4850778f5182e4a39a5241facbe48361fec817f56d02b51691b383010843fb08b34a8e8ea3614688fd5 +"@pkgr/core@npm:^0.3.6": + version: 0.3.6 + resolution: "@pkgr/core@npm:0.3.6" + checksum: 10c0/153f0f4563f505faeba13c733efa0e05e467ce1c6b941055a5fd3b4560da60fbf1dff4b11da0075f034ddda11f2842b90395f60895dde5825875b616edccc11c + languageName: node + linkType: hard + +"@puppeteer/browsers@npm:2.13.2": + version: 2.13.2 + resolution: "@puppeteer/browsers@npm:2.13.2" + dependencies: + debug: "npm:^4.4.3" + extract-zip: "npm:^2.0.1" + progress: "npm:^2.0.3" + proxy-agent: "npm:^6.5.0" + semver: "npm:^7.7.4" + tar-fs: "npm:^3.1.1" + yargs: "npm:^17.7.2" + bin: + browsers: lib/cjs/main-cli.js + checksum: 10c0/d4f7a6b160a87598f9bb6524d475e4bb16effb7ee39e82a731e51af3454858e95d80c1cfe2030dfadfc407b77d7ef60f0f8c1a2dcf4532dce30f09c09df29082 languageName: node linkType: hard @@ -5778,217 +5270,119 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-android-arm64@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-android-arm64@npm:1.0.0-rc.11" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@rolldown/binding-android-arm64@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-android-arm64@npm:1.0.0-rc.4" +"@rolldown/binding-android-arm64@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-android-arm64@npm:1.0.3" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-darwin-arm64@npm:1.0.0-rc.11" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-darwin-arm64@npm:1.0.0-rc.4" +"@rolldown/binding-darwin-arm64@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-darwin-arm64@npm:1.0.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-darwin-x64@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-darwin-x64@npm:1.0.0-rc.11" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@rolldown/binding-darwin-x64@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-darwin-x64@npm:1.0.0-rc.4" +"@rolldown/binding-darwin-x64@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-darwin-x64@npm:1.0.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-freebsd-x64@npm:1.0.0-rc.11" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-freebsd-x64@npm:1.0.0-rc.4" +"@rolldown/binding-freebsd-x64@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-freebsd-x64@npm:1.0.3" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.11" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.4" +"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.3" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.11" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.4" +"@rolldown/binding-linux-arm64-gnu@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.3" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.11" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.4" +"@rolldown/binding-linux-arm64-musl@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.3" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.11" +"@rolldown/binding-linux-ppc64-gnu@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.0.3" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.11" +"@rolldown/binding-linux-s390x-gnu@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.0.3" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.11" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.4" +"@rolldown/binding-linux-x64-gnu@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.3" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.11" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.4" +"@rolldown/binding-linux-x64-musl@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.3" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.11" - conditions: os=openharmony & cpu=arm64 - languageName: node - linkType: hard - -"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.4" +"@rolldown/binding-openharmony-arm64@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.3" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.11" - dependencies: - "@napi-rs/wasm-runtime": "npm:^1.1.1" - conditions: cpu=wasm32 - languageName: node - linkType: hard - -"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.4" +"@rolldown/binding-wasm32-wasi@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.3" dependencies: - "@napi-rs/wasm-runtime": "npm:^1.1.1" + "@emnapi/core": "npm:1.10.0" + "@emnapi/runtime": "npm:1.10.0" + "@napi-rs/wasm-runtime": "npm:^1.1.4" conditions: cpu=wasm32 languageName: node linkType: hard -"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.11" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.4" +"@rolldown/binding-win32-arm64-msvc@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.11" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.4" +"@rolldown/binding-win32-x64-msvc@npm:1.0.3": + version: 1.0.3 + resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@rolldown/pluginutils@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/pluginutils@npm:1.0.0-rc.11" - checksum: 10c0/ed20f15c0d78bb3e82f1cb1924ed4b489c026e76cc28ed861609101c75790effa1e2e0fed37ee1b22ceec83aee8ab59098a0d5d3d1b62baa1b44753f88a5e4c6 - languageName: node - linkType: hard - -"@rolldown/pluginutils@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "@rolldown/pluginutils@npm:1.0.0-rc.4" - checksum: 10c0/c3a4e8c3a4cda43294d04fbaa5066476b933c75b0b5dbee66aaa4ea9bbcf34675dbddd53ffaaf6160b244f1a868a42282aec85a00942fd5a166652f4e2fca192 +"@rolldown/pluginutils@npm:^1.0.0": + version: 1.0.1 + resolution: "@rolldown/pluginutils@npm:1.0.1" + checksum: 10c0/99d9b06d90196823e4d8c841f258db7a16e5dbba5824a2962b05d907b79f1ba929d56f22dd744fd530936e568c865ee56a719dc31e57e13bc0a8eb4764a8d8dd languageName: node linkType: hard @@ -6007,8 +5401,8 @@ __metadata: linkType: hard "@rollup/pluginutils@npm:^5.1.0": - version: 5.3.0 - resolution: "@rollup/pluginutils@npm:5.3.0" + version: 5.4.0 + resolution: "@rollup/pluginutils@npm:5.4.0" dependencies: "@types/estree": "npm:^1.0.0" estree-walker: "npm:^2.0.2" @@ -6018,187 +5412,384 @@ __metadata: peerDependenciesMeta: rollup: optional: true - checksum: 10c0/001834bf62d7cf5bac424d2617c113f7f7d3b2bf3c1778cbcccb72cdc957b68989f8e7747c782c2b911f1dde8257f56f8ac1e779e29e74e638e3f1e2cac2bcd0 + checksum: 10c0/ccc2cbd3a05df642df60ab05ffb81b2e564bd945e2a118bb8a474ea75b941033c8f44273133d4865643cca1492d0c80b14de1281f74779a64285a80fc3a194d8 + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.60.2" + conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.53.2" +"@rollup/rollup-android-arm-eabi@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.61.1" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-android-arm64@npm:4.53.2" +"@rollup/rollup-android-arm64@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-android-arm64@npm:4.60.2" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-android-arm64@npm:4.61.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-darwin-arm64@npm:4.53.2" +"@rollup/rollup-darwin-arm64@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-darwin-arm64@npm:4.60.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-darwin-x64@npm:4.53.2" +"@rollup/rollup-darwin-arm64@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.61.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-darwin-x64@npm:4.60.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.53.2" +"@rollup/rollup-darwin-x64@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.61.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.60.2" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.61.1" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-freebsd-x64@npm:4.53.2" +"@rollup/rollup-freebsd-x64@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-freebsd-x64@npm:4.60.2" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.53.2" +"@rollup/rollup-freebsd-x64@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.61.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.60.2" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.53.2" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.61.1" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.60.2" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.61.1" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.53.2" +"@rollup/rollup-linux-arm64-gnu@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.60.2" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.61.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.53.2" +"@rollup/rollup-linux-arm64-musl@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.60.2" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.61.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-loong64-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.53.2" +"@rollup/rollup-linux-loong64-gnu@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.60.2" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-ppc64-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.53.2" +"@rollup/rollup-linux-loong64-gnu@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.61.1" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-musl@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-loong64-musl@npm:4.60.2" + conditions: os=linux & cpu=loong64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-musl@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-loong64-musl@npm:4.61.1" + conditions: os=linux & cpu=loong64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-gnu@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.60.2" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.53.2" +"@rollup/rollup-linux-ppc64-gnu@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.61.1" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-musl@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.60.2" + conditions: os=linux & cpu=ppc64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-musl@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.61.1" + conditions: os=linux & cpu=ppc64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.60.2" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-musl@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.53.2" +"@rollup/rollup-linux-riscv64-gnu@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.61.1" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-musl@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.60.2" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-musl@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.61.1" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.53.2" +"@rollup/rollup-linux-s390x-gnu@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.60.2" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.53.2" +"@rollup/rollup-linux-s390x-gnu@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.61.1" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.60.2" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.53.2" +"@rollup/rollup-linux-x64-gnu@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.61.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.60.2" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-openharmony-arm64@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-openharmony-arm64@npm:4.53.2" +"@rollup/rollup-linux-x64-musl@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.61.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-openbsd-x64@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-openbsd-x64@npm:4.60.2" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-openbsd-x64@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-openbsd-x64@npm:4.61.1" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-openharmony-arm64@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.60.2" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-openharmony-arm64@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.61.1" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.53.2" +"@rollup/rollup-win32-arm64-msvc@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.60.2" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.61.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.53.2" +"@rollup/rollup-win32-ia32-msvc@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.60.2" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-win32-x64-gnu@npm:4.53.2" +"@rollup/rollup-win32-ia32-msvc@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.61.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-gnu@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.60.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.53.2" +"@rollup/rollup-win32-x64-gnu@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.61.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.60.2": + version: 4.60.2 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.60.2" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.61.1": + version: 4.61.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.61.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@rollup/wasm-node@npm:^4.24.0": - version: 4.53.2 - resolution: "@rollup/wasm-node@npm:4.53.2" + version: 4.61.1 + resolution: "@rollup/wasm-node@npm:4.61.1" dependencies: - "@types/estree": "npm:1.0.8" + "@types/estree": "npm:1.0.9" fsevents: "npm:~2.3.2" dependenciesMeta: fsevents: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/a7bde0a00aa959c4618212ea275b1324915676da147dee63a176150eaf363f750ae7232a30f4921a7367f6e10a2d4312252339061809074a2629edc8474cf50c + checksum: 10c0/b3d44b62727809615a4e31b48b94ced56ff940fdb197dde58e55f267a40d3fff23cc49d2d2cfcb6647cab17174e43e0599b5e3aa06dccc989d0c87fadb62a249 languageName: node linkType: hard -"@schematics/angular@npm:21.2.14": - version: 21.2.14 - resolution: "@schematics/angular@npm:21.2.14" +"@schematics/angular@npm:22.0.0, @schematics/angular@npm:^22.0.0": + version: 22.0.0 + resolution: "@schematics/angular@npm:22.0.0" dependencies: - "@angular-devkit/core": "npm:21.2.14" - "@angular-devkit/schematics": "npm:21.2.14" + "@angular-devkit/core": "npm:22.0.0" + "@angular-devkit/schematics": "npm:22.0.0" jsonc-parser: "npm:3.3.1" - checksum: 10c0/153d4297e6ebe7d6cc499c779f8fa8b9f386d7b9686306178eb43be3e3e076b4eb58c376ecd6be2565cb898f790949ae14c38093f56fb96bf79addb93790d0f8 + typescript: "npm:6.0.3" + checksum: 10c0/2546eda2e79e2f4023ead4c5935520b9fa8982155d4ea14b8248538b82ba2625dffbe1b5a1ad97939f3378667e144eb82a777a83e1747baa51534f3cf6ac8fd4 languageName: node linkType: hard @@ -6211,62 +5802,61 @@ __metadata: languageName: node linkType: hard -"@sigstore/core@npm:^3.0.0": - version: 3.0.0 - resolution: "@sigstore/core@npm:3.0.0" - checksum: 10c0/8f42d50401c62e04320d330ee5b95b3c9041a338654df2f006569e990781749b1f6c32706e83573caa0debebba41194e7f2a5b3f508b63a8fd0471567996a91c +"@sigstore/core@npm:^3.2.0, @sigstore/core@npm:^3.2.1": + version: 3.2.1 + resolution: "@sigstore/core@npm:3.2.1" + checksum: 10c0/b7f7dadf07234b6fa110dfeedd8453c6d81fa0fc77731c097dc72b3fb9e0e8750e7b3fa82c33f4b9d8bdda1be634eda18231f5dad1679bdf31f204f855926f61 languageName: node linkType: hard "@sigstore/protobuf-specs@npm:^0.5.0": - version: 0.5.0 - resolution: "@sigstore/protobuf-specs@npm:0.5.0" - checksum: 10c0/03c188ce9943a8a89fb5b0257556dcfa9bb4b0bd70c9fa1ab19d26c378870e02d295ba024b89b8c80dc7e856dee046cdd25f6a94473d14d2b383d7b905d62de8 + version: 0.5.1 + resolution: "@sigstore/protobuf-specs@npm:0.5.1" + checksum: 10c0/4284797bcac5f7250b7cb7000a67e76045d38da05a24a5912085b2472e0635efe4db3c6dd118e4023d7ba7ec5adc06cc8c35bf750cf2b39743e73c9f35311fe0 languageName: node linkType: hard -"@sigstore/sign@npm:^4.0.0": - version: 4.0.1 - resolution: "@sigstore/sign@npm:4.0.1" +"@sigstore/sign@npm:^4.1.1": + version: 4.1.1 + resolution: "@sigstore/sign@npm:4.1.1" dependencies: + "@gar/promise-retry": "npm:^1.0.2" "@sigstore/bundle": "npm:^4.0.0" - "@sigstore/core": "npm:^3.0.0" + "@sigstore/core": "npm:^3.2.0" "@sigstore/protobuf-specs": "npm:^0.5.0" - make-fetch-happen: "npm:^15.0.2" - proc-log: "npm:^5.0.0" - promise-retry: "npm:^2.0.1" - checksum: 10c0/1958b292af99a61d724c9888c0e7b7e4f07e057605ae442435ded75b33c0fa9686af21c5ec9c63eccdb218885d1e9724722fda135a42b570345efc0d529f30b1 + make-fetch-happen: "npm:^15.0.4" + proc-log: "npm:^6.1.0" + checksum: 10c0/88a6e5d2ce49477a52574d5dd5f4531cbb3472435fad29730969b77988efb23bdd5ce031a74f738da5b24c950f99030704b75b8cc65d5179b56ce9ede9711784 languageName: node linkType: hard -"@sigstore/tuf@npm:^4.0.0": - version: 4.0.0 - resolution: "@sigstore/tuf@npm:4.0.0" +"@sigstore/tuf@npm:^4.0.2": + version: 4.0.2 + resolution: "@sigstore/tuf@npm:4.0.2" dependencies: "@sigstore/protobuf-specs": "npm:^0.5.0" - tuf-js: "npm:^4.0.0" - checksum: 10c0/3c218d37cc646eee1832ddfc8d0fa650375be86bb2fdf4e955b44f41bce36fa8d6b92ee3e3758fb32a003d46f8a0f0c8f08120332eddd51fbff113d5f1de6bf8 + tuf-js: "npm:^4.1.0" + checksum: 10c0/eb7ba5b9d4859948bfd5552a1c6d93f0d05b9482bf21dede53779ea429f833dcd13c3a52524596c556729d75d85326ce0a7d0857d3d23ef99784b0e94e948818 languageName: node linkType: hard -"@sigstore/verify@npm:^3.0.0": - version: 3.0.0 - resolution: "@sigstore/verify@npm:3.0.0" +"@sigstore/verify@npm:^3.1.1": + version: 3.1.1 + resolution: "@sigstore/verify@npm:3.1.1" dependencies: "@sigstore/bundle": "npm:^4.0.0" - "@sigstore/core": "npm:^3.0.0" + "@sigstore/core": "npm:^3.2.1" "@sigstore/protobuf-specs": "npm:^0.5.0" - checksum: 10c0/d4e4f117266974cc50d5f31715ca7a2a9641aa8020522e9947e3806fd0c18161e54edbb9d1e22442c3aec6e43bbf88a5b839754a71c5f95dc204af7c8d83dff4 + checksum: 10c0/3b8c0b224b23a0e215e90a60a03193b77f333d9fd6838671aec2aef1bc9e8d42b9cb5cf246d5fb31135705bef0384e919364c5ba7f749e2cb4c10c93ae856a5c languageName: node linkType: hard "@simple-libs/child-process-utils@npm:^1.0.0": - version: 1.0.1 - resolution: "@simple-libs/child-process-utils@npm:1.0.1" + version: 1.0.2 + resolution: "@simple-libs/child-process-utils@npm:1.0.2" dependencies: - "@simple-libs/stream-utils": "npm:^1.1.0" - "@types/node": "npm:^22.0.0" - checksum: 10c0/3c875a4c0b36dba8948628a77ec9671a946123f664e5632f2a4897b8fc8235a78108ba1412e40f2b1682b4646b9f2a984f0b3dfff144ae76e708bb1b5d25d8ef + "@simple-libs/stream-utils": "npm:^1.2.0" + checksum: 10c0/a057603daf68a852d75bc6a840659291187b4bb5310e8d46e35dd5c1848047a15b40f6dd1917e17a533bd25d0a8ad75c48ef1a8301aad7e9a325c2b180e96cb6 languageName: node linkType: hard @@ -6277,15 +5867,6 @@ __metadata: languageName: node linkType: hard -"@simple-libs/stream-utils@npm:^1.1.0": - version: 1.1.0 - resolution: "@simple-libs/stream-utils@npm:1.1.0" - dependencies: - "@types/node": "npm:^22.0.0" - checksum: 10c0/c8fbe6034fc2830bab2ad067667737c1eed096710a87b528c7c34ba17d0539049842d2fd37cf4ae5ae3a0d30fa6a0a341a61a147c70a278cb7ecaf6c383e9f20 - languageName: node - linkType: hard - "@simple-libs/stream-utils@npm:^1.2.0": version: 1.2.0 resolution: "@simple-libs/stream-utils@npm:1.2.0" @@ -6294,9 +5875,9 @@ __metadata: linkType: hard "@sinclair/typebox@npm:^0.34.0": - version: 0.34.41 - resolution: "@sinclair/typebox@npm:0.34.41" - checksum: 10c0/0fb61fc2f90c25e30b19b0096eb8ab3ccef401d3e2acfce42168ff0ee877ba5981c8243fa6b1035ac756cde95316724e978b2837dd642d7e4e095de03a999c90 + version: 0.34.49 + resolution: "@sinclair/typebox@npm:0.34.49" + checksum: 10c0/16b7d87f039a49b68c10bb4cdcae2ce5242b2472228851fd6483731616aba4ef977690aa517b230a8d20da8185bb416eb34e326f30568b3963c1cf26b05d1ad8 languageName: node linkType: hard @@ -6316,15 +5897,6 @@ __metadata: languageName: node linkType: hard -"@sinonjs/fake-timers@npm:^13.0.0": - version: 13.0.5 - resolution: "@sinonjs/fake-timers@npm:13.0.5" - dependencies: - "@sinonjs/commons": "npm:^3.0.1" - checksum: 10c0/a707476efd523d2138ef6bba916c83c4a377a8372ef04fad87499458af9f01afc58f4f245c5fd062793d6d70587309330c6f96947b5bd5697961c18004dc3e26 - languageName: node - linkType: hard - "@sinonjs/fake-timers@npm:^15.4.0": version: 15.4.0 resolution: "@sinonjs/fake-timers@npm:15.4.0" @@ -6348,31 +5920,10 @@ __metadata: languageName: node linkType: hard -"@tsconfig/node10@npm:^1.0.7": - version: 1.0.11 - resolution: "@tsconfig/node10@npm:1.0.11" - checksum: 10c0/28a0710e5d039e0de484bdf85fee883bfd3f6a8980601f4d44066b0a6bcd821d31c4e231d1117731c4e24268bd4cf2a788a6787c12fc7f8d11014c07d582783c - languageName: node - linkType: hard - -"@tsconfig/node12@npm:^1.0.7": - version: 1.0.11 - resolution: "@tsconfig/node12@npm:1.0.11" - checksum: 10c0/dddca2b553e2bee1308a056705103fc8304e42bb2d2cbd797b84403a223b25c78f2c683ec3e24a095e82cd435387c877239bffcb15a590ba817cd3f6b9a99fd9 - languageName: node - linkType: hard - -"@tsconfig/node14@npm:^1.0.0": - version: 1.0.3 - resolution: "@tsconfig/node14@npm:1.0.3" - checksum: 10c0/67c1316d065fdaa32525bc9449ff82c197c4c19092b9663b23213c8cbbf8d88b6ed6a17898e0cbc2711950fbfaf40388938c1c748a2ee89f7234fc9e7fe2bf44 - languageName: node - linkType: hard - -"@tsconfig/node16@npm:^1.0.2": - version: 1.0.4 - resolution: "@tsconfig/node16@npm:1.0.4" - checksum: 10c0/05f8f2734e266fb1839eb1d57290df1664fe2aa3b0fdd685a9035806daa635f7519bf6d5d9b33f6e69dd545b8c46bd6e2b5c79acb2b1f146e885f7f11a42a5bb +"@tootallnate/quickjs-emscripten@npm:^0.23.0": + version: 0.23.0 + resolution: "@tootallnate/quickjs-emscripten@npm:0.23.0" + checksum: 10c0/2a939b781826fb5fd3edd0f2ec3b321d259d760464cf20611c9877205aaca3ccc0b7304dea68416baa0d568e82cd86b17d29548d1e5139fa3155a4a86a2b4b49 languageName: node linkType: hard @@ -6383,13 +5934,13 @@ __metadata: languageName: node linkType: hard -"@tufjs/models@npm:4.0.0": - version: 4.0.0 - resolution: "@tufjs/models@npm:4.0.0" +"@tufjs/models@npm:4.1.0": + version: 4.1.0 + resolution: "@tufjs/models@npm:4.1.0" dependencies: "@tufjs/canonical-json": "npm:2.0.0" - minimatch: "npm:^9.0.5" - checksum: 10c0/13e45dbd6af8bc78bfbedca1f5a1b8b15df3abe680de3fb7ab445d8711d3703d0c5af3e6ba9f53a50a3fb2bb02b2eadfcb51890737a87e3d7aab43f48f795733 + minimatch: "npm:^10.1.1" + checksum: 10c0/0a4ab524061c97bb43ccd3ffaaaed224eb41469fa2b748f66599d298798f7556e7158a12a9cbdfb89476df0ae538ca562292ac10909e411aa17f81f72b3e8931 languageName: node linkType: hard @@ -6435,12 +5986,12 @@ __metadata: languageName: node linkType: hard -"@tybys/wasm-util@npm:^0.10.0, @tybys/wasm-util@npm:^0.10.1": - version: 0.10.1 - resolution: "@tybys/wasm-util@npm:0.10.1" +"@tybys/wasm-util@npm:^0.10.1": + version: 0.10.2 + resolution: "@tybys/wasm-util@npm:0.10.2" dependencies: tslib: "npm:^2.4.0" - checksum: 10c0/b255094f293794c6d2289300c5fbcafbb5532a3aed3a5ffd2f8dc1828e639b88d75f6a376dd8f94347a44813fd7a7149d8463477a9a49525c8b2dcaa38c2d1e8 + checksum: 10c0/26165bcd1fd7269f42d7fbe3de318f854a8968de8397e89fc9a423bb3e2da35a52150f382e6323b3367595beb16d9800a6f35971a5599daf76da1742ec3afc25 languageName: node linkType: hard @@ -6583,7 +6134,14 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:1.0.8, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8": +"@types/estree@npm:*, @types/estree@npm:1.0.9, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8": + version: 1.0.9 + resolution: "@types/estree@npm:1.0.9" + checksum: 10c0/3ad3286ca2988cd550dafb8f2ad599c8474868e954fa601a36655bdfefd8039f7c714b8c1c7f2ae219ffbd58bd4660e66fa7479a0120fc02d4777057d4865387 + languageName: node + linkType: hard + +"@types/estree@npm:1.0.8": version: 1.0.8 resolution: "@types/estree@npm:1.0.8" checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 @@ -6591,37 +6149,37 @@ __metadata: linkType: hard "@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^5.0.0": - version: 5.1.0 - resolution: "@types/express-serve-static-core@npm:5.1.0" + version: 5.1.1 + resolution: "@types/express-serve-static-core@npm:5.1.1" dependencies: "@types/node": "npm:*" "@types/qs": "npm:*" "@types/range-parser": "npm:*" "@types/send": "npm:*" - checksum: 10c0/1918233c68a0c69695f78331af1aed5fb5190f91da6309318f700adeb78573be840b5d206cb8eda804b65a9989fdeccdaaf84c1e95adc3615052749224b64519 + checksum: 10c0/ee88216e114368ef06bcafeceb74a7e8671b90900fb0ab1d49ff41542c3a344231ef0d922bf63daa79f0585f3eebe2ce5ec7f83facc581eff8bcdb136a225ef3 languageName: node linkType: hard "@types/express-serve-static-core@npm:^4.17.21, @types/express-serve-static-core@npm:^4.17.33": - version: 4.19.7 - resolution: "@types/express-serve-static-core@npm:4.19.7" + version: 4.19.8 + resolution: "@types/express-serve-static-core@npm:4.19.8" dependencies: "@types/node": "npm:*" "@types/qs": "npm:*" "@types/range-parser": "npm:*" "@types/send": "npm:*" - checksum: 10c0/c239df87863b8515e68dcb18203a9e2ba6108f86fdc385090284464a57a6dca6abb60a961cb6a73fea2110576f4f8acefa1cb06b60d14b6b0e5104478e7d57d1 + checksum: 10c0/6fb58a85b209e0e421b29c52e0a51dbf7c039b711c604cf45d46470937a5c7c16b30aa5ce9bf7da0bd8a2e9361c95b5055599c0500a96bf4414d26c81f02d7fe languageName: node linkType: hard "@types/express@npm:*": - version: 5.0.5 - resolution: "@types/express@npm:5.0.5" + version: 5.0.6 + resolution: "@types/express@npm:5.0.6" dependencies: "@types/body-parser": "npm:*" "@types/express-serve-static-core": "npm:^5.0.0" - "@types/serve-static": "npm:^1" - checksum: 10c0/e96da91c121b43e0e84301a4cfe165908382d016234c11213aeb4f7401cf1a8694e16e3947d21b5c20b3389358d48d60a8c5c38657e041726ac9e8c884d2b8f0 + "@types/serve-static": "npm:^2" + checksum: 10c0/f1071e3389a955d4f9a38aae38634121c7cd9b3171ba4201ec9b56bd534aba07866839d278adc0dda05b942b05a901a02fd174201c3b1f70ce22b10b6c68f24b languageName: node linkType: hard @@ -6752,15 +6310,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^22.0.0": - version: 22.19.20 - resolution: "@types/node@npm:22.19.20" - dependencies: - undici-types: "npm:~6.21.0" - checksum: 10c0/933d4466f1a498dd7c8e173af7265a53e9d410cab4a827ccc348414d5065a9a40ba7a7c994a71b3ee651188111db3b43573b830dc30a61a7489f3e6efc537bf7 - languageName: node - linkType: hard - "@types/normalize-package-data@npm:^2.4.4": version: 2.4.4 resolution: "@types/normalize-package-data@npm:2.4.4" @@ -6776,9 +6325,9 @@ __metadata: linkType: hard "@types/qs@npm:*": - version: 6.14.0 - resolution: "@types/qs@npm:6.14.0" - checksum: 10c0/5b3036df6e507483869cdb3858201b2e0b64b4793dc4974f188caa5b5732f2333ab9db45c08157975054d3b070788b35088b4bc60257ae263885016ee2131310 + version: 6.15.1 + resolution: "@types/qs@npm:6.15.1" + checksum: 10c0/1dfdbcb4cf2a8f66d57f0b9a9fe6b1c7091cb816687b6698c1351eaf31f62e412cea9b7453a9637b570cd5fad8dced527e5a9e69b4fcc6e318daacd8b749f094 languageName: node linkType: hard @@ -6835,6 +6384,16 @@ __metadata: languageName: node linkType: hard +"@types/serve-static@npm:^2": + version: 2.2.0 + resolution: "@types/serve-static@npm:2.2.0" + dependencies: + "@types/http-errors": "npm:*" + "@types/node": "npm:*" + checksum: 10c0/a3c6126bdbf9685e6c7dc03ad34639666eff32754e912adeed9643bf3dd3aa0ff043002a7f69039306e310d233eb8e160c59308f95b0a619f32366bbc48ee094 + languageName: node + linkType: hard + "@types/sinonjs__fake-timers@npm:8.1.1": version: 8.1.1 resolution: "@types/sinonjs__fake-timers@npm:8.1.1" @@ -6879,7 +6438,7 @@ __metadata: languageName: node linkType: hard -"@types/ws@npm:^8.5.10": +"@types/ws@npm:^8.5.10, @types/ws@npm:^8.5.12": version: 8.18.1 resolution: "@types/ws@npm:8.18.1" dependencies: @@ -6896,60 +6455,69 @@ __metadata: linkType: hard "@types/yargs@npm:^17.0.33": - version: 17.0.34 - resolution: "@types/yargs@npm:17.0.34" + version: 17.0.35 + resolution: "@types/yargs@npm:17.0.35" dependencies: "@types/yargs-parser": "npm:*" - checksum: 10c0/7d4c6a6bc2b8dd4c7deaf507633fe6fd91424873add76b63c8263479223ea7a061bea86e7e0f3ed28cbe897338a934f3c04d802e8f67b7d2d3874924c94468c5 + checksum: 10c0/609557826a6b85e73ccf587923f6429850d6dc70e420b455bab4601b670bfadf684b09ae288bccedab042c48ba65f1666133cf375814204b544009f57d6eef63 languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.60.1": - version: 8.60.1 - resolution: "@typescript-eslint/eslint-plugin@npm:8.60.1" +"@types/yauzl@npm:^2.9.1": + version: 2.10.3 + resolution: "@types/yauzl@npm:2.10.3" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/f1b7c1b99fef9f2fe7f1985ef7426d0cebe48cd031f1780fcdc7451eec7e31ac97028f16f50121a59bcf53086a1fc8c856fd5b7d3e00970e43d92ae27d6b43dc + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:8.60.0": + version: 8.60.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.60.0" dependencies: "@eslint-community/regexpp": "npm:^4.12.2" - "@typescript-eslint/scope-manager": "npm:8.60.1" - "@typescript-eslint/type-utils": "npm:8.60.1" - "@typescript-eslint/utils": "npm:8.60.1" - "@typescript-eslint/visitor-keys": "npm:8.60.1" + "@typescript-eslint/scope-manager": "npm:8.60.0" + "@typescript-eslint/type-utils": "npm:8.60.0" + "@typescript-eslint/utils": "npm:8.60.0" + "@typescript-eslint/visitor-keys": "npm:8.60.0" ignore: "npm:^7.0.5" natural-compare: "npm:^1.4.0" ts-api-utils: "npm:^2.5.0" peerDependencies: - "@typescript-eslint/parser": ^8.60.1 + "@typescript-eslint/parser": ^8.60.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/de9f9ab9801970c8c96f342b94661e993e8a66f90a36fc4501a7238585712900a2f1f5c7c805adb1214f98b478a072f0aa590e22dd4ed36231dcabde3f6c7b2f + checksum: 10c0/76dc44d21879a8977d916ab652b86a30e5b69493a0da4ce43ec403442da041320666b5987d6af7d4c9888d52c603e0bb51809b802f98a95d5ee37ca0e8ca5ac3 languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.60.1": - version: 8.60.1 - resolution: "@typescript-eslint/parser@npm:8.60.1" +"@typescript-eslint/parser@npm:8.60.0": + version: 8.60.0 + resolution: "@typescript-eslint/parser@npm:8.60.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.60.1" - "@typescript-eslint/types": "npm:8.60.1" - "@typescript-eslint/typescript-estree": "npm:8.60.1" - "@typescript-eslint/visitor-keys": "npm:8.60.1" + "@typescript-eslint/scope-manager": "npm:8.60.0" + "@typescript-eslint/types": "npm:8.60.0" + "@typescript-eslint/typescript-estree": "npm:8.60.0" + "@typescript-eslint/visitor-keys": "npm:8.60.0" debug: "npm:^4.4.3" peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/8bc9ecccac411cda8f6bc38fce2427639071a41f44594b047b40a4a50fd40959797acd373b87ab40e4f4b49e9069d42e1480d91e100800d5fb5e6ec6e4afba71 + checksum: 10c0/1012911e3eca8b3f3a3ca11424c32859ac38b4968bdb4c385c485ce545781da3ad964eceae86177a9aca2cfcbefd03ecf49507d221c7a70918fe0fa6cb8764e7 languageName: node linkType: hard -"@typescript-eslint/project-service@npm:8.46.3": - version: 8.46.3 - resolution: "@typescript-eslint/project-service@npm:8.46.3" +"@typescript-eslint/project-service@npm:8.60.0": + version: 8.60.0 + resolution: "@typescript-eslint/project-service@npm:8.60.0" dependencies: - "@typescript-eslint/tsconfig-utils": "npm:^8.46.3" - "@typescript-eslint/types": "npm:^8.46.3" - debug: "npm:^4.3.4" + "@typescript-eslint/tsconfig-utils": "npm:^8.60.0" + "@typescript-eslint/types": "npm:^8.60.0" + debug: "npm:^4.4.3" peerDependencies: - typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/24ef305bbb550a8e27a7d6377663c1f2773b39b7a9f12c8b95c66c0d15f8150787b036bbff9ae4c2a0a18ab68c62435b0e03889df294bef00b3ae8846cd20659 + typescript: ">=4.8.4 <6.1.0" + checksum: 10c0/8f72c2f10254787084d19fc73aebd7970bd3f163836c006e5d6997d874a36550d4a6c35b4762a36117be6fa6b84e13268db0a6b572c29b3e7c8c89f25bbb8b65 languageName: node linkType: hard @@ -6966,13 +6534,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.46.3": - version: 8.46.3 - resolution: "@typescript-eslint/scope-manager@npm:8.46.3" +"@typescript-eslint/scope-manager@npm:8.60.0": + version: 8.60.0 + resolution: "@typescript-eslint/scope-manager@npm:8.60.0" dependencies: - "@typescript-eslint/types": "npm:8.46.3" - "@typescript-eslint/visitor-keys": "npm:8.46.3" - checksum: 10c0/de8c116477e2a05a895ecd848a8289974a76cab884e07683c8085b3a2ce53895871d9bcd9de94723d6b2a437a6c526c77afcc75d6030cc4f1dccb9b47f4fc069 + "@typescript-eslint/types": "npm:8.60.0" + "@typescript-eslint/visitor-keys": "npm:8.60.0" + checksum: 10c0/d64c7c45f9e045fa10905b6703195735b19314f872811e1fd903b6197fb33528a49192ef6ca3183e406601b8d29e8d0096fabfc3e8a99320476e5108d4739f52 languageName: node linkType: hard @@ -6986,16 +6554,16 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/tsconfig-utils@npm:8.46.3, @typescript-eslint/tsconfig-utils@npm:^8.46.3": - version: 8.46.3 - resolution: "@typescript-eslint/tsconfig-utils@npm:8.46.3" +"@typescript-eslint/tsconfig-utils@npm:8.60.0": + version: 8.60.0 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.60.0" peerDependencies: - typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/a9686141204a96591ee51814a79fa676a8da845638eabb2363f9d82902660fd48ea47f7ec15a618129e45021ad154e1d193127248915752546d60d475d6a566e + typescript: ">=4.8.4 <6.1.0" + checksum: 10c0/701eae9a5064c5501e9dccd5a8e0baf365ef9a09da4d523873df303ef139644fad43e3d91b03f9a6ebbb141c0e066fc26ad0c40d5113b7c0d6c9ba69450c2520 languageName: node linkType: hard -"@typescript-eslint/tsconfig-utils@npm:8.60.1, @typescript-eslint/tsconfig-utils@npm:^8.60.1": +"@typescript-eslint/tsconfig-utils@npm:8.60.1, @typescript-eslint/tsconfig-utils@npm:^8.60.0, @typescript-eslint/tsconfig-utils@npm:^8.60.1": version: 8.60.1 resolution: "@typescript-eslint/tsconfig-utils@npm:8.60.1" peerDependencies: @@ -7004,53 +6572,52 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.60.1": - version: 8.60.1 - resolution: "@typescript-eslint/type-utils@npm:8.60.1" +"@typescript-eslint/type-utils@npm:8.60.0": + version: 8.60.0 + resolution: "@typescript-eslint/type-utils@npm:8.60.0" dependencies: - "@typescript-eslint/types": "npm:8.60.1" - "@typescript-eslint/typescript-estree": "npm:8.60.1" - "@typescript-eslint/utils": "npm:8.60.1" + "@typescript-eslint/types": "npm:8.60.0" + "@typescript-eslint/typescript-estree": "npm:8.60.0" + "@typescript-eslint/utils": "npm:8.60.0" debug: "npm:^4.4.3" ts-api-utils: "npm:^2.5.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/916d354fd22a2296abe0c618f89574ba6ed363b841bcbcbb662a53deaccd9bc644f253e7134d12f506d75cb574bbbc3e4113f253045b404e8a17962004e42f1d + checksum: 10c0/2b6d8efe6b8e6f63ecfcca218c255c3f846b78b9567579bec3d16ea97563edebd9d25e7ab3cdf82332c9ded45b7dbfdc1e6540c4503f4716ae8cbd93ab78f605 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.46.3, @typescript-eslint/types@npm:^8.0.0, @typescript-eslint/types@npm:^8.46.3": - version: 8.46.3 - resolution: "@typescript-eslint/types@npm:8.46.3" - checksum: 10c0/6a6ccefbd086e6c38172fe14d04ba27c1c34755af7c25e752547c42d978b91bf6b97da56a5e63d098fbd679b4a5076c4dd4be6c947fd39b4c5feea5fed6deeb6 +"@typescript-eslint/types@npm:8.60.0": + version: 8.60.0 + resolution: "@typescript-eslint/types@npm:8.60.0" + checksum: 10c0/d2b6d46081a6521f204fda30e8f03712480b788d80b62b311e0f33764752d3db3bd415dd4e1f8d28495931316da1dfb5ee259e40c5de970367fbaa1efe97223f languageName: node linkType: hard -"@typescript-eslint/types@npm:8.60.1, @typescript-eslint/types@npm:^8.60.1": +"@typescript-eslint/types@npm:8.60.1, @typescript-eslint/types@npm:^8.0.0, @typescript-eslint/types@npm:^8.60.0, @typescript-eslint/types@npm:^8.60.1": version: 8.60.1 resolution: "@typescript-eslint/types@npm:8.60.1" checksum: 10c0/44308007e090ae1ac9cfdc5c2089cf1a82601298f69dd4835f62549e3d36886d41ecb1f84b490603382657481ca4e2ff23de49b97ad09d199dc65ce6c2e00b22 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.46.3": - version: 8.46.3 - resolution: "@typescript-eslint/typescript-estree@npm:8.46.3" +"@typescript-eslint/typescript-estree@npm:8.60.0": + version: 8.60.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.60.0" dependencies: - "@typescript-eslint/project-service": "npm:8.46.3" - "@typescript-eslint/tsconfig-utils": "npm:8.46.3" - "@typescript-eslint/types": "npm:8.46.3" - "@typescript-eslint/visitor-keys": "npm:8.46.3" - debug: "npm:^4.3.4" - fast-glob: "npm:^3.3.2" - is-glob: "npm:^4.0.3" - minimatch: "npm:^9.0.4" - semver: "npm:^7.6.0" - ts-api-utils: "npm:^2.1.0" + "@typescript-eslint/project-service": "npm:8.60.0" + "@typescript-eslint/tsconfig-utils": "npm:8.60.0" + "@typescript-eslint/types": "npm:8.60.0" + "@typescript-eslint/visitor-keys": "npm:8.60.0" + debug: "npm:^4.4.3" + minimatch: "npm:^10.2.2" + semver: "npm:^7.7.3" + tinyglobby: "npm:^0.2.15" + ts-api-utils: "npm:^2.5.0" peerDependencies: - typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/3a2bb879a3b42eda478015beee42729efdc78c0cfc70fa009442706626813114f8f9a1e918638ab957df385681ab073cf2076c508973ff9a72e2425e4e521b4f + typescript: ">=4.8.4 <6.1.0" + checksum: 10c0/9a24a3c47646886cc5c9bd984afdf5974d07033a5743318a4c649f9595d620cc1a409366ecb87beaddb9cd4b32e1fc7fc18c0531bda08eacd78025c3636d6c72 languageName: node linkType: hard @@ -7073,43 +6640,43 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.60.1": - version: 8.60.1 - resolution: "@typescript-eslint/utils@npm:8.60.1" +"@typescript-eslint/utils@npm:8.60.0": + version: 8.60.0 + resolution: "@typescript-eslint/utils@npm:8.60.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.9.1" - "@typescript-eslint/scope-manager": "npm:8.60.1" - "@typescript-eslint/types": "npm:8.60.1" - "@typescript-eslint/typescript-estree": "npm:8.60.1" + "@typescript-eslint/scope-manager": "npm:8.60.0" + "@typescript-eslint/types": "npm:8.60.0" + "@typescript-eslint/typescript-estree": "npm:8.60.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/24777b47e23f930df5e0a0858e2979dbc44597d52e7ad237d2d764a433ac214ac00c0f7d0245ce9a54eb31900d261e305dc8a77d31efbb73bd7523c0ab075299 + checksum: 10c0/c1fe25bc90a62d9f67c1dd3a23bf32c2b1d3fc81bfa34cb41e5cadaeaa825c83c7c69a4abc9bc132f1ee39c7e71e367271a16c47573ed621421a2fa2f0e98dd0 languageName: node linkType: hard "@typescript-eslint/utils@npm:^8.0.0": - version: 8.46.3 - resolution: "@typescript-eslint/utils@npm:8.46.3" + version: 8.60.1 + resolution: "@typescript-eslint/utils@npm:8.60.1" dependencies: - "@eslint-community/eslint-utils": "npm:^4.7.0" - "@typescript-eslint/scope-manager": "npm:8.46.3" - "@typescript-eslint/types": "npm:8.46.3" - "@typescript-eslint/typescript-estree": "npm:8.46.3" + "@eslint-community/eslint-utils": "npm:^4.9.1" + "@typescript-eslint/scope-manager": "npm:8.60.1" + "@typescript-eslint/types": "npm:8.60.1" + "@typescript-eslint/typescript-estree": "npm:8.60.1" peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ">=4.8.4 <6.0.0" - checksum: 10c0/cf85b166f75c2fd248004fb59643315347489d9ab589738cda1b4c36c25e7947c197a1c21e46cb25959be7d0f310b352c4436f8d3e0a91d64e4fafb3ef4b4e3d + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: ">=4.8.4 <6.1.0" + checksum: 10c0/24777b47e23f930df5e0a0858e2979dbc44597d52e7ad237d2d764a433ac214ac00c0f7d0245ce9a54eb31900d261e305dc8a77d31efbb73bd7523c0ab075299 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.46.3": - version: 8.46.3 - resolution: "@typescript-eslint/visitor-keys@npm:8.46.3" +"@typescript-eslint/visitor-keys@npm:8.60.0": + version: 8.60.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.60.0" dependencies: - "@typescript-eslint/types": "npm:8.46.3" - eslint-visitor-keys: "npm:^4.2.1" - checksum: 10c0/c5f96840e0c31541e1a2390712a6cb290eff59fc97a3ffa7ecab353d3bb3cf0d8c6f62d68db271bf194aa8c4582be735b6121fcc5b30449e01799642be77de6e + "@typescript-eslint/types": "npm:8.60.0" + eslint-visitor-keys: "npm:^5.0.0" + checksum: 10c0/5ff775fe5352d359e25ed47ce27d8d61dea7aa9aa4d21a3556a9ee02957673e8d4787ad1d0c325977f47cca56ecdce401417864de0c773b6167053fe36bf9e65 languageName: node linkType: hard @@ -7124,153 +6691,190 @@ __metadata: linkType: hard "@ungap/structured-clone@npm:^1.3.0": - version: 1.3.0 - resolution: "@ungap/structured-clone@npm:1.3.0" - checksum: 10c0/0fc3097c2540ada1fc340ee56d58d96b5b536a2a0dab6e3ec17d4bfc8c4c86db345f61a375a8185f9da96f01c69678f836a2b57eeaa9e4b8eeafd26428e57b0a + version: 1.3.1 + resolution: "@ungap/structured-clone@npm:1.3.1" + checksum: 10c0/7e75faf93cf12ff07c3d15a9e4d326b68f57d13f7246d9f4df2c1ed1a5cde581f899d397816ba5d5d703a0d7f6219e4408f385160156cf20b4e082721817cc37 languageName: node linkType: hard -"@unrs/resolver-binding-android-arm-eabi@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-android-arm-eabi@npm:1.11.1" +"@unrs/resolver-binding-android-arm-eabi@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-android-arm-eabi@npm:1.12.2" conditions: os=android & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-android-arm64@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-android-arm64@npm:1.11.1" +"@unrs/resolver-binding-android-arm64@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-android-arm64@npm:1.12.2" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-darwin-arm64@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.11.1" +"@unrs/resolver-binding-darwin-arm64@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.12.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-darwin-x64@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-darwin-x64@npm:1.11.1" +"@unrs/resolver-binding-darwin-x64@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-darwin-x64@npm:1.12.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-freebsd-x64@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.11.1" +"@unrs/resolver-binding-freebsd-x64@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.12.2" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.11.1" +"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.12.2" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.11.1" +"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.12.2" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.11.1" +"@unrs/resolver-binding-linux-arm64-gnu@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.12.2" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-musl@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.11.1" +"@unrs/resolver-binding-linux-arm64-musl@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.12.2" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.11.1" +"@unrs/resolver-binding-linux-loong64-gnu@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-linux-loong64-gnu@npm:1.12.2" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-loong64-musl@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-linux-loong64-musl@npm:1.12.2" + conditions: os=linux & cpu=loong64 & libc=musl + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.12.2" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.11.1" +"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.12.2" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-riscv64-musl@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.11.1" +"@unrs/resolver-binding-linux-riscv64-musl@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.12.2" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-linux-s390x-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.11.1" +"@unrs/resolver-binding-linux-s390x-gnu@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.12.2" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.11.1" +"@unrs/resolver-binding-linux-x64-gnu@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.12.2" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-musl@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.11.1" +"@unrs/resolver-binding-linux-x64-musl@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.12.2" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-wasm32-wasi@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.11.1" +"@unrs/resolver-binding-openharmony-arm64@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-openharmony-arm64@npm:1.12.2" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-wasm32-wasi@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.12.2" dependencies: - "@napi-rs/wasm-runtime": "npm:^0.2.11" + "@emnapi/core": "npm:1.10.0" + "@emnapi/runtime": "npm:1.10.0" + "@napi-rs/wasm-runtime": "npm:^1.1.4" conditions: cpu=wasm32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-arm64-msvc@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.11.1" +"@unrs/resolver-binding-win32-arm64-msvc@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.12.2" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-win32-ia32-msvc@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.11.1" +"@unrs/resolver-binding-win32-ia32-msvc@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.12.2" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-x64-msvc@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.11.1" +"@unrs/resolver-binding-win32-x64-msvc@npm:1.12.2": + version: 1.12.2 + resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.12.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@vitejs/plugin-basic-ssl@npm:2.1.4": - version: 2.1.4 - resolution: "@vitejs/plugin-basic-ssl@npm:2.1.4" +"@vitejs/plugin-basic-ssl@npm:2.3.0": + version: 2.3.0 + resolution: "@vitejs/plugin-basic-ssl@npm:2.3.0" peerDependencies: - vite: ^6.0.0 || ^7.0.0 - checksum: 10c0/fcbec6f089d3f16f3c2011a8d7cf41920a0b9a97907a36f1dc367527582f98e6e376fa29b1f4d93c265be765ccd90752bfe6558bfaf71cc4f171196dccd19b56 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/754ebe29a61ac694e665477187f425b7c3b41e30af8d392613250bf65f9b2741e7f5a6ec00a3f88f1a14bfda96e93c6b5e0f75e86357737bc4e92c8dc455c1c0 + languageName: node + linkType: hard + +"@vitest/expect@npm:4.1.7": + version: 4.1.7 + resolution: "@vitest/expect@npm:4.1.7" + dependencies: + "@standard-schema/spec": "npm:^1.1.0" + "@types/chai": "npm:^5.2.2" + "@vitest/spy": "npm:4.1.7" + "@vitest/utils": "npm:4.1.7" + chai: "npm:^6.2.2" + tinyrainbow: "npm:^3.1.0" + checksum: 10c0/1a72387c6d3cac1e12cd4df382e666d96560b38001ea0133f1e0a22825f71ccf1640ccce13244296b0054c15cf04442f3adbd67dfc57fe542bd35a46cd805487 languageName: node linkType: hard @@ -7288,6 +6892,25 @@ __metadata: languageName: node linkType: hard +"@vitest/mocker@npm:4.1.7": + version: 4.1.7 + resolution: "@vitest/mocker@npm:4.1.7" + dependencies: + "@vitest/spy": "npm:4.1.7" + estree-walker: "npm:^3.0.3" + magic-string: "npm:^0.30.21" + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: 10c0/e03dbbba435543e3cfa5e034ba8ade371de5e398255f75366ebc370ff8dd78d45f7d7cc9daa76eb1d399b31e659e47d3cbb710566e64ceeeba3f99b418e4b955 + languageName: node + linkType: hard + "@vitest/mocker@npm:4.1.8": version: 4.1.8 resolution: "@vitest/mocker@npm:4.1.8" @@ -7307,6 +6930,15 @@ __metadata: languageName: node linkType: hard +"@vitest/pretty-format@npm:4.1.7": + version: 4.1.7 + resolution: "@vitest/pretty-format@npm:4.1.7" + dependencies: + tinyrainbow: "npm:^3.1.0" + checksum: 10c0/49ef801171708e3a92214e8720efbedbd6e0e6baf17971aaf4feb7422e5c9eba82262c24a9e6dd4d41a31fae77bd31d5b37cf140d13e0ac4ce29a7457bdc692f + languageName: node + linkType: hard + "@vitest/pretty-format@npm:4.1.8": version: 4.1.8 resolution: "@vitest/pretty-format@npm:4.1.8" @@ -7316,6 +6948,16 @@ __metadata: languageName: node linkType: hard +"@vitest/runner@npm:4.1.7": + version: 4.1.7 + resolution: "@vitest/runner@npm:4.1.7" + dependencies: + "@vitest/utils": "npm:4.1.7" + pathe: "npm:^2.0.3" + checksum: 10c0/63474c6fc088d75b5d7fe735195504f923c694b83a22eb9caa53d6486c923974304c2e3ef4d5bcd808d88082174f38434be320fc4fe649a8cf33f0459a0576e3 + languageName: node + linkType: hard + "@vitest/runner@npm:4.1.8": version: 4.1.8 resolution: "@vitest/runner@npm:4.1.8" @@ -7326,6 +6968,18 @@ __metadata: languageName: node linkType: hard +"@vitest/snapshot@npm:4.1.7": + version: 4.1.7 + resolution: "@vitest/snapshot@npm:4.1.7" + dependencies: + "@vitest/pretty-format": "npm:4.1.7" + "@vitest/utils": "npm:4.1.7" + magic-string: "npm:^0.30.21" + pathe: "npm:^2.0.3" + checksum: 10c0/6fa49c4242a4acc0557ee6a20552db41f4f4c9d2d4c05993181c3f5f19e66579e08f63d34f792b79400547ab791ef500a9955b77390c381e45c3bb8e33717793 + languageName: node + linkType: hard + "@vitest/snapshot@npm:4.1.8": version: 4.1.8 resolution: "@vitest/snapshot@npm:4.1.8" @@ -7338,6 +6992,13 @@ __metadata: languageName: node linkType: hard +"@vitest/spy@npm:4.1.7": + version: 4.1.7 + resolution: "@vitest/spy@npm:4.1.7" + checksum: 10c0/be2a95d5c5c438b57c9b33cef1289fb02659214754b5e946cb4b8183e2b5089e49e3fda6ca05981f3ea9872b207595db109e25072668c0a671203f69fddbbe99 + languageName: node + linkType: hard + "@vitest/spy@npm:4.1.8": version: 4.1.8 resolution: "@vitest/spy@npm:4.1.8" @@ -7345,6 +7006,17 @@ __metadata: languageName: node linkType: hard +"@vitest/utils@npm:4.1.7": + version: 4.1.7 + resolution: "@vitest/utils@npm:4.1.7" + dependencies: + "@vitest/pretty-format": "npm:4.1.7" + convert-source-map: "npm:^2.0.0" + tinyrainbow: "npm:^3.1.0" + checksum: 10c0/aa0079d8923506300527dc23ff68cf090ffcb2c6a9549e598ae22ba0eb8a6bb4448b10724b38bc6b077f9957333302a857d791ad2f7abd807bb6263c9a218833 + languageName: node + linkType: hard + "@vitest/utils@npm:4.1.8": version: 4.1.8 resolution: "@vitest/utils@npm:4.1.8" @@ -7528,13 +7200,6 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:^3.0.0": - version: 3.0.1 - resolution: "abbrev@npm:3.0.1" - checksum: 10c0/21ba8f574ea57a3106d6d35623f2c4a9111d9ee3e9a5be47baed46ec2457d2eac46e07a5c4a60186f88cb98abbe3e24f2d4cca70bc2b12f1692523e2209a9ccf - languageName: node - linkType: hard - "abbrev@npm:^4.0.0": version: 4.0.0 resolution: "abbrev@npm:4.0.0" @@ -7580,15 +7245,6 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.1.1": - version: 8.3.4 - resolution: "acorn-walk@npm:8.3.4" - dependencies: - acorn: "npm:^8.11.0" - checksum: 10c0/76537ac5fb2c37a64560feaf3342023dadc086c46da57da363e64c6148dc21b57d49ace26f949e225063acb6fb441eabffd89f7a3066de5ad37ab3e328927c62 - languageName: node - linkType: hard - "acorn@npm:^7.1.1": version: 7.4.1 resolution: "acorn@npm:7.4.1" @@ -7598,16 +7254,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.11.0, acorn@npm:^8.15.0, acorn@npm:^8.4.1": - version: 8.15.0 - resolution: "acorn@npm:8.15.0" - bin: - acorn: bin/acorn - checksum: 10c0/dec73ff59b7d6628a01eebaece7f2bdb8bb62b9b5926dcad0f8931f2b8b79c2be21f6c68ac095592adb5adb15831a3635d9343e6a91d028bbe85d564875ec3ec - languageName: node - linkType: hard - -"acorn@npm:^8.16.0": +"acorn@npm:^8.15.0, acorn@npm:^8.16.0": version: 8.16.0 resolution: "acorn@npm:8.16.0" bin: @@ -7626,6 +7273,13 @@ __metadata: languageName: node linkType: hard +"agent-base@npm:9.0.0": + version: 9.0.0 + resolution: "agent-base@npm:9.0.0" + checksum: 10c0/0274cd9a2a0ee78e3fbe0e80e7e0c41df27102466f7f7b3a67c045bb4c00fc517ce0496de3045b55f5eeec1a0e77d9d0a9b9320b0362bfe61e0c9e6d7ebaee76 + languageName: node + linkType: hard + "agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": version: 7.1.4 resolution: "agent-base@npm:7.1.4" @@ -7672,61 +7326,49 @@ __metadata: languageName: node linkType: hard -"ajv@npm:8.18.0": - version: 8.18.0 - resolution: "ajv@npm:8.18.0" +"ajv@npm:8.20.0, ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.17.1, ajv@npm:^8.9.0": + version: 8.20.0 + resolution: "ajv@npm:8.20.0" dependencies: fast-deep-equal: "npm:^3.1.3" fast-uri: "npm:^3.0.1" json-schema-traverse: "npm:^1.0.0" require-from-string: "npm:^2.0.2" - checksum: 10c0/e7517c426173513a07391be951879932bdf3348feaebd2199f5b901c20f99d60db8cd1591502d4d551dc82f594e82a05c4fe1c70139b15b8937f7afeaed9532f + checksum: 10c0/5df9a1c8f83863cde1bd3a9ddb426f599718f88e3dc9153616c79fb28e0be455335830d7f21d745576519f057b371352daa31047b6a33d7036fe08777d60cf2a languageName: node linkType: hard "ajv@npm:^6.14.0": - version: 6.14.0 - resolution: "ajv@npm:6.14.0" + version: 6.15.0 + resolution: "ajv@npm:6.15.0" dependencies: fast-deep-equal: "npm:^3.1.1" fast-json-stable-stringify: "npm:^2.0.0" json-schema-traverse: "npm:^0.4.1" uri-js: "npm:^4.2.2" - checksum: 10c0/a2bc39b0555dc9802c899f86990eb8eed6e366cddbf65be43d5aa7e4f3c4e1a199d5460fd7ca4fb3d864000dbbc049253b72faa83b3b30e641ca52cb29a68c22 - languageName: node - linkType: hard - -"ajv@npm:^8.0.0, ajv@npm:^8.11.0, ajv@npm:^8.17.1, ajv@npm:^8.9.0": - version: 8.17.1 - resolution: "ajv@npm:8.17.1" - dependencies: - fast-deep-equal: "npm:^3.1.3" - fast-uri: "npm:^3.0.1" - json-schema-traverse: "npm:^1.0.0" - require-from-string: "npm:^2.0.2" - checksum: 10c0/ec3ba10a573c6b60f94639ffc53526275917a2df6810e4ab5a6b959d87459f9ef3f00d5e7865b82677cb7d21590355b34da14d1d0b9c32d75f95a187e76fff35 + checksum: 10c0/67966499dd272ecde1c2e467084411132891523d057487587879d39ac04207f4351b7b2324c83198013967fbfa632c1612adc960114a30770fbe07a0773b32c2 languageName: node linkType: hard -"algoliasearch@npm:5.48.1": - version: 5.48.1 - resolution: "algoliasearch@npm:5.48.1" +"algoliasearch@npm:5.52.0": + version: 5.52.0 + resolution: "algoliasearch@npm:5.52.0" dependencies: - "@algolia/abtesting": "npm:1.14.1" - "@algolia/client-abtesting": "npm:5.48.1" - "@algolia/client-analytics": "npm:5.48.1" - "@algolia/client-common": "npm:5.48.1" - "@algolia/client-insights": "npm:5.48.1" - "@algolia/client-personalization": "npm:5.48.1" - "@algolia/client-query-suggestions": "npm:5.48.1" - "@algolia/client-search": "npm:5.48.1" - "@algolia/ingestion": "npm:1.48.1" - "@algolia/monitoring": "npm:1.48.1" - "@algolia/recommend": "npm:5.48.1" - "@algolia/requester-browser-xhr": "npm:5.48.1" - "@algolia/requester-fetch": "npm:5.48.1" - "@algolia/requester-node-http": "npm:5.48.1" - checksum: 10c0/592a9682faf1279b2230099e07aaf48f0886d9da5ae8552e1453e920ae4133070724a7248fc4c2669c1346d5f5960f8f8976516306a5924f1ccea43c75b47006 + "@algolia/abtesting": "npm:1.18.0" + "@algolia/client-abtesting": "npm:5.52.0" + "@algolia/client-analytics": "npm:5.52.0" + "@algolia/client-common": "npm:5.52.0" + "@algolia/client-insights": "npm:5.52.0" + "@algolia/client-personalization": "npm:5.52.0" + "@algolia/client-query-suggestions": "npm:5.52.0" + "@algolia/client-search": "npm:5.52.0" + "@algolia/ingestion": "npm:1.52.0" + "@algolia/monitoring": "npm:1.52.0" + "@algolia/recommend": "npm:5.52.0" + "@algolia/requester-browser-xhr": "npm:5.52.0" + "@algolia/requester-fetch": "npm:5.52.0" + "@algolia/requester-node-http": "npm:5.52.0" + checksum: 10c0/ba5755979c01137f969e7225357f2d10593bf8c3dd2c653c0c685ccfbbd992f07ff8526c6e246972c32da9ea3c894396d544e33f538836e72268a2ffea6d980d languageName: node linkType: hard @@ -7734,7 +7376,7 @@ __metadata: version: 0.0.0-use.local resolution: "angular-builders@workspace:." dependencies: - "@angular/build": "npm:^21.0.0" + "@angular/build": "npm:^22.0.0" "@commitlint/cli": "npm:^21.0.0" "@commitlint/config-conventional": "npm:^21.0.0" "@lerna-lite/cli": "npm:^5.0.0" @@ -7742,6 +7384,7 @@ __metadata: "@types/lodash": "npm:^4.14.118" "@types/node": "npm:^24.0.0" husky: "npm:^9.0.0" + jiti: "npm:^2.7.0" lint-staged: "npm:^17.0.0" lodash: "npm:^4.17.15" prettier: "npm:^3.0.0" @@ -7751,29 +7394,29 @@ __metadata: languageName: unknown linkType: soft -"angular-eslint@npm:21.4.0": - version: 21.4.0 - resolution: "angular-eslint@npm:21.4.0" - dependencies: - "@angular-devkit/core": "npm:>= 21.0.0 < 22.0.0" - "@angular-devkit/schematics": "npm:>= 21.0.0 < 22.0.0" - "@angular-eslint/builder": "npm:21.4.0" - "@angular-eslint/eslint-plugin": "npm:21.4.0" - "@angular-eslint/eslint-plugin-template": "npm:21.4.0" - "@angular-eslint/schematics": "npm:21.4.0" - "@angular-eslint/template-parser": "npm:21.4.0" +"angular-eslint@npm:22.0.0": + version: 22.0.0 + resolution: "angular-eslint@npm:22.0.0" + dependencies: + "@angular-devkit/core": "npm:>= 22.0.0 < 23.0.0" + "@angular-devkit/schematics": "npm:>= 22.0.0 < 23.0.0" + "@angular-eslint/builder": "npm:22.0.0" + "@angular-eslint/eslint-plugin": "npm:22.0.0" + "@angular-eslint/eslint-plugin-template": "npm:22.0.0" + "@angular-eslint/schematics": "npm:22.0.0" + "@angular-eslint/template-parser": "npm:22.0.0" "@typescript-eslint/types": "npm:^8.0.0" "@typescript-eslint/utils": "npm:^8.0.0" peerDependencies: - "@angular/cli": ">= 21.0.0 < 22.0.0" - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + "@angular/cli": ">= 22.0.0 < 23.0.0" + eslint: ^9.0.0 || ^10.0.0 typescript: "*" typescript-eslint: ^8.0.0 - checksum: 10c0/507fc4d6e553ea5c864d882580c98c76ddc66517fc363a5eeb8026bba6a0f2d85fc0dd3b1499eb5534a5f3c81c3496161b9c6304477a68324fc09e48008d75a6 + checksum: 10c0/401349601bfd25a2e345c3fd6f40cb987e00279b8d91accf0feb2ac01d41a55ca9ace7cd2d99a35a5129c9fce9d290b2c998c3d2c6f359d5353316b4a6894a0c languageName: node linkType: hard -"ansi-colors@npm:4.1.3, ansi-colors@npm:^4.1.3": +"ansi-colors@npm:4.1.3": version: 4.1.3 resolution: "ansi-colors@npm:4.1.3" checksum: 10c0/ec87a2f59902f74e61eada7f6e6fe20094a628dab765cfdbd03c3477599368768cffccdb5d3bb19a1b6c99126783a143b1fee31aab729b31ffe5836c7e5e28b9 @@ -7790,11 +7433,11 @@ __metadata: linkType: hard "ansi-escapes@npm:^7.0.0": - version: 7.2.0 - resolution: "ansi-escapes@npm:7.2.0" + version: 7.3.0 + resolution: "ansi-escapes@npm:7.3.0" dependencies: environment: "npm:^1.0.0" - checksum: 10c0/b562fd995761fa12f33be316950ee58fda489e125d331bcd9131434969a2eb55dc14e9405f214dcf4697c9d67c576ba0baf6e8f3d52058bf9222c97560b220cb + checksum: 10c0/068961d99f0ef28b661a4a9f84a5d645df93ccf3b9b93816cc7d46bbe1913321d4cdf156bb842a4e1e4583b7375c631fa963efb43001c4eb7ff9ab8f78fc0679 languageName: node linkType: hard @@ -7828,7 +7471,7 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^6.0.1": +"ansi-regex@npm:^6.2.2": version: 6.2.2 resolution: "ansi-regex@npm:6.2.2" checksum: 10c0/05d4acb1d2f59ab2cf4b794339c7b168890d44dda4bf0ce01152a8da0213aca207802f930442ce8cd22d7a92f44907664aac6508904e75e038fa944d2601b30f @@ -7884,13 +7527,6 @@ __metadata: languageName: node linkType: hard -"arg@npm:^4.1.0": - version: 4.1.3 - resolution: "arg@npm:4.1.3" - checksum: 10c0/070ff801a9d236a6caa647507bdcc7034530604844d64408149a26b9e87c2f97650055c0f049abd1efc024b334635c01f29e0b632b371ac3f26130f4cf65997a - languageName: node - linkType: hard - "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -7956,13 +7592,13 @@ __metadata: linkType: hard "asn1js@npm:^3.0.6": - version: 3.0.7 - resolution: "asn1js@npm:3.0.7" + version: 3.0.10 + resolution: "asn1js@npm:3.0.10" dependencies: pvtsutils: "npm:^1.3.6" - pvutils: "npm:^1.1.3" + pvutils: "npm:^1.1.5" tslib: "npm:^2.8.1" - checksum: 10c0/7e79795edf1bcc86532c4084aa7c8c0ebc57f7dd6f964ad6de956abf617329722f6964b7af3a5d1c4554dd61b4b148ae1580e63e3ec2e70e7fba34f6df072b29 + checksum: 10c0/04056106522e4d0db4eb992299bb76d73438bfd59ffd975ac9c1f15d14e7326161dad383c54a5ccfa203b73ae7b7bf4668f42c2fed01e1f4bf79a58de71e4dc6 languageName: node linkType: hard @@ -7980,6 +7616,15 @@ __metadata: languageName: node linkType: hard +"ast-types@npm:^0.13.4": + version: 0.13.4 + resolution: "ast-types@npm:0.13.4" + dependencies: + tslib: "npm:^2.0.1" + checksum: 10c0/3a1a409764faa1471601a0ad01b3aa699292991aa9c8a30c7717002cabdf5d98008e7b53ae61f6e058f757fc6ba965e147967a93c13e62692c907d79cfb245f8 + languageName: node + linkType: hard + "async-function@npm:^1.0.0": version: 1.0.0 resolution: "async-function@npm:1.0.0" @@ -8008,12 +7653,12 @@ __metadata: languageName: node linkType: hard -"autoprefixer@npm:10.4.27": - version: 10.4.27 - resolution: "autoprefixer@npm:10.4.27" +"autoprefixer@npm:10.5.0": + version: 10.5.0 + resolution: "autoprefixer@npm:10.5.0" dependencies: - browserslist: "npm:^4.28.1" - caniuse-lite: "npm:^1.0.30001774" + browserslist: "npm:^4.28.2" + caniuse-lite: "npm:^1.0.30001787" fraction.js: "npm:^5.3.4" picocolors: "npm:^1.1.1" postcss-value-parser: "npm:^4.2.0" @@ -8021,7 +7666,7 @@ __metadata: postcss: ^8.1.0 bin: autoprefixer: bin/autoprefixer - checksum: 10c0/698ad9e23436635af1806d4a8b80393020135174d1d4a97eb81887cdddac2f297f198d1d717932db8503b325f9f2dc3accb6e290b2d3ce1a7ddeb947100e5b25 + checksum: 10c0/3e1a7bb65ef3a44925d19fd18cbb96a9a73ef1a8bfaa134bc131743787a8983045d6e756cff0204d37c34a52cfc86d79182f444c221b631401f79d7873ae97a8 languageName: node linkType: hard @@ -8046,6 +7691,18 @@ __metadata: languageName: node linkType: hard +"b4a@npm:^1.6.4": + version: 1.8.1 + resolution: "b4a@npm:1.8.1" + peerDependencies: + react-native-b4a: "*" + peerDependenciesMeta: + react-native-b4a: + optional: true + checksum: 10c0/344d8c94b244ec7a9cb516ea43a98216312454cb72478e4b7628a679ee343be237564c53bbe73995ab10ea9bc923b420236081b180b3cf78fd0c945bfc886798 + languageName: node + linkType: hard + "babel-jest@npm:30.4.1": version: 30.4.1 resolution: "babel-jest@npm:30.4.1" @@ -8063,15 +7720,21 @@ __metadata: languageName: node linkType: hard -"babel-loader@npm:10.0.0": - version: 10.0.0 - resolution: "babel-loader@npm:10.0.0" +"babel-loader@npm:10.1.1": + version: 10.1.1 + resolution: "babel-loader@npm:10.1.1" dependencies: find-up: "npm:^5.0.0" peerDependencies: - "@babel/core": ^7.12.0 + "@babel/core": ^7.12.0 || ^8.0.0-beta.1 + "@rspack/core": ^1.0.0 || ^2.0.0-0 webpack: ">=5.61.0" - checksum: 10c0/882dfacde3ee24b432ad57e468832cd0821e2a410f6c5b75ff945f069a8956592b28c6c357df5bb03db73d2741ec3db5febb106ac0bb3591c3d4288f2cf4df0e + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 10c0/09a14b66aadfc98b4fde123bcdf6e5481fb0a8a0daad1e225ea27656fd006a426d6446d34763b6af94f7a7333c52c9bead9ebefb42ad5b09a27bad65b6dac8f7 languageName: node linkType: hard @@ -8097,29 +7760,16 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.14": - version: 0.4.14 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.14" - dependencies: - "@babel/compat-data": "npm:^7.27.7" - "@babel/helper-define-polyfill-provider": "npm:^0.6.5" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/d74cba0600a6508e86d220bde7164eb528755d91be58020e5ea92ea7fbb12c9d8d2c29246525485adfe7f68ae02618ec428f9a589cac6cbedf53cc3972ad7fbe - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs2@npm:^0.4.15": - version: 0.4.15 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.15" +"babel-plugin-polyfill-corejs2@npm:^0.4.14, babel-plugin-polyfill-corejs2@npm:^0.4.15": + version: 0.4.17 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.17" dependencies: "@babel/compat-data": "npm:^7.28.6" - "@babel/helper-define-polyfill-provider": "npm:^0.6.6" + "@babel/helper-define-polyfill-provider": "npm:^0.6.8" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/5e3ff853a5056bdc0816320523057b45d52c9ea01c847fd07886a4202b0c1324dc97eda4b777c98387927ff02d913fedbe9ba9943c0d4030714048e0b9e61682 + checksum: 10c0/1284960ea403c63b0dd598f338666c4b17d489aefee30b4da6a7313eff1d91edffb0ccf26341a6e5d94231684b74e016eade66b3921ea112f8b0e4980fa08a5c languageName: node linkType: hard @@ -8136,36 +7786,25 @@ __metadata: linkType: hard "babel-plugin-polyfill-corejs3@npm:^0.14.0": - version: 0.14.0 - resolution: "babel-plugin-polyfill-corejs3@npm:0.14.0" + version: 0.14.2 + resolution: "babel-plugin-polyfill-corejs3@npm:0.14.2" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.6.6" + "@babel/helper-define-polyfill-provider": "npm:^0.6.8" core-js-compat: "npm:^3.48.0" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/db7f530752a2bcb891c0dc80c3d025a48d49c78d41b0ad91cc853669460cd9e3107857a3667f645f0e25c2af9fc3d1e38d5b1c4e3e60aa22e7df9d68550712a4 + checksum: 10c0/32f70442f142d0f5607f4b57c121c573b106e09da8659c0f03108a85bf1d09ba5bdc89595a82b34ff76c19f1faf3d1c831b56166f03babf69c024f36da77c3bf languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.6.5": - version: 0.6.5 - resolution: "babel-plugin-polyfill-regenerator@npm:0.6.5" +"babel-plugin-polyfill-regenerator@npm:^0.6.5, babel-plugin-polyfill-regenerator@npm:^0.6.6": + version: 0.6.8 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.8" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.6.5" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/63aa8ed716df6a9277c6ab42b887858fa9f57a70cc1d0ae2b91bdf081e45d4502848cba306fb60b02f59f99b32fd02ff4753b373cac48ccdac9b7d19dd56f06d - languageName: node - linkType: hard - -"babel-plugin-polyfill-regenerator@npm:^0.6.6": - version: 0.6.6 - resolution: "babel-plugin-polyfill-regenerator@npm:0.6.6" - dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.6.6" + "@babel/helper-define-polyfill-provider": "npm:^0.6.8" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/0ef91d8361c118e7b16d8592c053707325b8168638ea4636b76530c8bc6a1b5aac5c6ca5140e8f3fcdb634a7a2e636133e6b9ef70a75e6417a258a7fddc04bd7 + checksum: 10c0/7c8b2497c29fa880e0acdc8e7b93e29b81b154179b83beb0476eb2c4e7a78b6b42fc35c2554ca250c9bd6d39941eaf75416254b8592ce50979f9a12e1d51c049 languageName: node linkType: hard @@ -8214,9 +7853,85 @@ __metadata: linkType: hard "balanced-match@npm:^4.0.2": - version: 4.0.3 - resolution: "balanced-match@npm:4.0.3" - checksum: 10c0/4d96945d0815849934145b2cdc0ccb80fb869d909060820fde5f95da0a32040f2142560ef931584fbb6a1607d39d399707e7d2364030a720ac1dc6f78ddaf9dc + version: 4.0.4 + resolution: "balanced-match@npm:4.0.4" + checksum: 10c0/07e86102a3eb2ee2a6a1a89164f29d0dbaebd28f2ca3f5ca786f36b8b23d9e417eb3be45a4acf754f837be5ac0a2317de90d3fcb7f4f4dc95720a1f36b26a17b + languageName: node + linkType: hard + +"bare-events@npm:^2.5.4, bare-events@npm:^2.7.0": + version: 2.9.1 + resolution: "bare-events@npm:2.9.1" + peerDependencies: + bare-abort-controller: "*" + peerDependenciesMeta: + bare-abort-controller: + optional: true + checksum: 10c0/576fba522bdd2167f35e86791e6c881fdaaf542aa5fca0acfaf8fac7a2c0789340f1cafa0b63e216808efb5cc710887c0cf683f1783293bf98a215d8555ecc36 + languageName: node + linkType: hard + +"bare-fs@npm:^4.0.1, bare-fs@npm:^4.5.5": + version: 4.7.2 + resolution: "bare-fs@npm:4.7.2" + dependencies: + bare-events: "npm:^2.5.4" + bare-path: "npm:^3.0.0" + bare-stream: "npm:^2.6.4" + bare-url: "npm:^2.2.2" + fast-fifo: "npm:^1.3.2" + peerDependencies: + bare-buffer: "*" + peerDependenciesMeta: + bare-buffer: + optional: true + checksum: 10c0/b70ad408b532dc244660a48b56a9d730c9f0e772d493693ad289dfe4c90ea65ce38674d78f0b9242c8856b549e15cb1dd9e2634ae1322c6e8118dc58719126c5 + languageName: node + linkType: hard + +"bare-os@npm:^3.0.1": + version: 3.9.1 + resolution: "bare-os@npm:3.9.1" + checksum: 10c0/65219ea4ae8b843395bc91be8c65d4ab6d7479d4b38a247efdde80341523c17fc242d5b0b8f09f89d6e54ef7ebec9700b3d9d4334559ffd4c1398b15cf93fa03 + languageName: node + linkType: hard + +"bare-path@npm:^3.0.0": + version: 3.0.1 + resolution: "bare-path@npm:3.0.1" + dependencies: + bare-os: "npm:^3.0.1" + checksum: 10c0/5f9b7ce5643fd0da64997a8630f2707a1a0e943f0f092d1562bd839699042714650268aa7d271d5a1ce089163b15695564ac4419f839431f1cec552d3bda8317 + languageName: node + linkType: hard + +"bare-stream@npm:^2.6.4": + version: 2.13.1 + resolution: "bare-stream@npm:2.13.1" + dependencies: + streamx: "npm:^2.25.0" + teex: "npm:^1.0.1" + peerDependencies: + bare-abort-controller: "*" + bare-buffer: "*" + bare-events: "*" + peerDependenciesMeta: + bare-abort-controller: + optional: true + bare-buffer: + optional: true + bare-events: + optional: true + checksum: 10c0/2c35e0b4e56667265e9023e9f51b77652ce043fd6611497575871ce62e833760dd3e5919ccc0cebe1af40959c4350035162b47541a1277d6488709f61f199754 + languageName: node + linkType: hard + +"bare-url@npm:^2.2.2": + version: 2.4.5 + resolution: "bare-url@npm:2.4.5" + dependencies: + bare-path: "npm:^3.0.0" + checksum: 10c0/5077ddb2386548a1efad58418e4d7d6895700b1ecf95d1a63e020f4ae01ebdf7e5f393c9f9b45f3228de32c4803161a80785cf999b03cecdd913516795c50f7c languageName: node linkType: hard @@ -8234,12 +7949,19 @@ __metadata: languageName: node linkType: hard -"baseline-browser-mapping@npm:^2.8.19, baseline-browser-mapping@npm:^2.9.0": - version: 2.9.7 - resolution: "baseline-browser-mapping@npm:2.9.7" +"baseline-browser-mapping@npm:^2.10.12": + version: 2.10.34 + resolution: "baseline-browser-mapping@npm:2.10.34" bin: - baseline-browser-mapping: dist/cli.js - checksum: 10c0/500af82926d71d23fab20bcf821eb27deeaad45d1a01bd33d2dea7aab6114149068fa0d42bb9c5c18657e996b6e8063b84612c8fb8ac8ba6c6c6028fa4930ed1 + baseline-browser-mapping: dist/cli.cjs + checksum: 10c0/5c29d5c053ced64a016f2977f70b87bcc85c014b425971cf8a96c14675efe4fedf13871bc7d25030c926e7cbf22959249ffe6b35d5c1e7299578fcdf4e7dc371 + languageName: node + linkType: hard + +"basic-ftp@npm:^5.0.2": + version: 5.3.1 + resolution: "basic-ftp@npm:5.3.1" + checksum: 10c0/03511b488cd292abfa82a8c0ea3b9573b40d12d2f1518d6f41a9461b012b3376d3e6d50679b38d9b2b4f48fd6e8e0418ac196312ee7e2da13cb801169940d1c3 languageName: node linkType: hard @@ -8255,7 +7977,7 @@ __metadata: resolution: "bazel-example@workspace:examples/bazel" dependencies: "@angular-builders/bazel": "workspace:*" - "@angular/cli": "npm:21.2.14" + "@angular/cli": "npm:22" languageName: unknown linkType: soft @@ -8268,9 +7990,9 @@ __metadata: languageName: node linkType: hard -"beasties@npm:0.4.1": - version: 0.4.1 - resolution: "beasties@npm:0.4.1" +"beasties@npm:0.4.2": + version: 0.4.2 + resolution: "beasties@npm:0.4.2" dependencies: css-select: "npm:^6.0.0" css-what: "npm:^7.0.0" @@ -8281,7 +8003,7 @@ __metadata: postcss: "npm:^8.4.49" postcss-media-query-parser: "npm:^0.2.3" postcss-safe-parser: "npm:^7.0.1" - checksum: 10c0/acc4394ab01fdb0d56604ca5b8019226eabdb1a7640a350425941a66d2b28593f4303f61142496a1ac68e1d530bab067d5bd6a196405dcfb34421bdbd8f2b459 + checksum: 10c0/319ef828ad0486f622e9c91b9f793be6cc5a72b05c5e23227fbaf4d611d63d64d2be257a263fe7d69f882aaef3cc0d7f104d25b4d4c791afbc265b02e3e38956 languageName: node linkType: hard @@ -8309,15 +8031,15 @@ __metadata: linkType: hard "bin-links@npm:^6.0.0": - version: 6.0.0 - resolution: "bin-links@npm:6.0.0" + version: 6.0.2 + resolution: "bin-links@npm:6.0.2" dependencies: cmd-shim: "npm:^8.0.0" npm-normalize-package-bin: "npm:^5.0.0" proc-log: "npm:^6.0.0" read-cmd-shim: "npm:^6.0.0" write-file-atomic: "npm:^7.0.0" - checksum: 10c0/aa7244ca1f2b69bf038b21dad0b914e22a5d6fcc25b54e783a92eb36a66ea60d0641fd9e6638597edf4806c24c24f3790665ab1105f08104bff48f65072c1232 + checksum: 10c0/b6a95482a712a154e5ea0a43002a4bbaa3d51bb3a71160a368d0acfe98f1a3a5dbcec06718d24ac12cfcf299545f179a5a48cd4f59372e9d9221cb66e070b6f0 languageName: node linkType: hard @@ -8342,23 +8064,23 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:^1.19.0": - version: 1.20.3 - resolution: "body-parser@npm:1.20.3" +"body-parser@npm:^1.19.0, body-parser@npm:~1.20.5": + version: 1.20.5 + resolution: "body-parser@npm:1.20.5" dependencies: - bytes: "npm:3.1.2" + bytes: "npm:~3.1.2" content-type: "npm:~1.0.5" debug: "npm:2.6.9" depd: "npm:2.0.0" - destroy: "npm:1.2.0" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - on-finished: "npm:2.4.1" - qs: "npm:6.13.0" - raw-body: "npm:2.5.2" + destroy: "npm:~1.2.0" + http-errors: "npm:~2.0.1" + iconv-lite: "npm:~0.4.24" + on-finished: "npm:~2.4.1" + qs: "npm:~6.15.1" + raw-body: "npm:~2.5.3" type-is: "npm:~1.6.18" - unpipe: "npm:1.0.0" - checksum: 10c0/0a9a93b7518f222885498dcecaad528cf010dd109b071bf471c93def4bfe30958b83e03496eb9c1ad4896db543d999bb62be1a3087294162a88cfa1b42c16310 + unpipe: "npm:~1.0.0" + checksum: 10c0/ad777ca5e4711eae253c93f50fdc4608c60b76a9710d79e5e5b84581c76691e6ad21ecc9158986d9ea2b365df73e403ca33c27a8bccc1a7cfc2ccc248548118d languageName: node linkType: hard @@ -8379,33 +8101,13 @@ __metadata: languageName: node linkType: hard -"body-parser@npm:~1.20.3": - version: 1.20.4 - resolution: "body-parser@npm:1.20.4" - dependencies: - bytes: "npm:~3.1.2" - content-type: "npm:~1.0.5" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:~1.2.0" - http-errors: "npm:~2.0.1" - iconv-lite: "npm:~0.4.24" - on-finished: "npm:~2.4.1" - qs: "npm:~6.14.0" - raw-body: "npm:~2.5.3" - type-is: "npm:~1.6.18" - unpipe: "npm:~1.0.0" - checksum: 10c0/569c1e896297d1fcd8f34026c8d0ab70b90d45343c15c5d8dff5de2bad08125fc1e2f8c2f3f4c1ac6c0caaad115218202594d37dcb8d89d9b5dcae1c2b736aa9 - languageName: node - linkType: hard - "bonjour-service@npm:^1.2.1": - version: 1.3.0 - resolution: "bonjour-service@npm:1.3.0" + version: 1.4.0 + resolution: "bonjour-service@npm:1.4.0" dependencies: fast-deep-equal: "npm:^3.1.3" multicast-dns: "npm:^7.2.5" - checksum: 10c0/5721fd9f9bb968e9cc16c1e8116d770863dd2329cb1f753231de1515870648c225142b7eefa71f14a5c22bc7b37ddd7fdeb018700f28a8c936d50d4162d433c7 + checksum: 10c0/b06e75dc5d6e0f365c872e266bb762ba0120d5036244660885a6657a9985b57bf4df10868f07b94bd92fb349c31802858a90febbec177f37e92415b9a8291378 languageName: node linkType: hard @@ -8417,30 +8119,30 @@ __metadata: linkType: hard "brace-expansion@npm:^1.1.7": - version: 1.1.12 - resolution: "brace-expansion@npm:1.1.12" + version: 1.1.15 + resolution: "brace-expansion@npm:1.1.15" dependencies: balanced-match: "npm:^1.0.0" concat-map: "npm:0.0.1" - checksum: 10c0/975fecac2bb7758c062c20d0b3b6288c7cc895219ee25f0a64a9de662dbac981ff0b6e89909c3897c1f84fa353113a721923afdec5f8b2350255b097f12b1f73 + checksum: 10c0/648e273f57cfa9ed67d8a77bdb15b408205465d33da9331808ee3c188d8b55674c9cdbf1f320b65bc562e485e1263360ae62ad355e128e0435891f6430e795d7 languageName: node linkType: hard -"brace-expansion@npm:^2.0.1": - version: 2.0.2 - resolution: "brace-expansion@npm:2.0.2" +"brace-expansion@npm:^2.0.2": + version: 2.1.1 + resolution: "brace-expansion@npm:2.1.1" dependencies: balanced-match: "npm:^1.0.0" - checksum: 10c0/6d117a4c793488af86b83172deb6af143e94c17bc53b0b3cec259733923b4ca84679d506ac261f4ba3c7ed37c46018e2ff442f9ce453af8643ecd64f4a54e6cf + checksum: 10c0/63b5ddce608b70b50a76817c0526faf8ea67a9180073d88bb402f6bbc22a22da6b1dfac4f65efc53e5faa80222fb7d44bbf2fc638c3f55365975573f671d0ccb languageName: node linkType: hard -"brace-expansion@npm:^5.0.2": - version: 5.0.2 - resolution: "brace-expansion@npm:5.0.2" +"brace-expansion@npm:^5.0.5": + version: 5.0.6 + resolution: "brace-expansion@npm:5.0.6" dependencies: balanced-match: "npm:^4.0.2" - checksum: 10c0/60c765e5df6fc0ceca3d5703202ae6779db61f28ea3bf93a04dbf0d50c22ef8e4644e09d0459c827077cd2d09ba8f199a04d92c36419fcf874601a5565013174 + checksum: 10c0/8c919869b90f61d533b341d3340be5ee4413232ea89b8246cbc2f38eb014f1d8182785c98a006eaf6111d02dc9eeffefdc240d5ac158625b2ed084dccd4bbf9b languageName: node linkType: hard @@ -8474,33 +8176,18 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.24.0, browserslist@npm:^4.26.3": - version: 4.27.0 - resolution: "browserslist@npm:4.27.0" - dependencies: - baseline-browser-mapping: "npm:^2.8.19" - caniuse-lite: "npm:^1.0.30001751" - electron-to-chromium: "npm:^1.5.238" - node-releases: "npm:^2.0.26" - update-browserslist-db: "npm:^1.1.4" - bin: - browserslist: cli.js - checksum: 10c0/395611e54374da9171cdbe7e3704ab426e0f1d622751392df6d6cbf60c539bf06cf2407e9dd769bc01ee2abca6a14af6509a2e0bbb448ba75a054db6c1840643 - languageName: node - linkType: hard - -"browserslist@npm:^4.26.0, browserslist@npm:^4.28.1": - version: 4.28.1 - resolution: "browserslist@npm:4.28.1" +"browserslist@npm:^4.24.0, browserslist@npm:^4.26.0, browserslist@npm:^4.28.1, browserslist@npm:^4.28.2": + version: 4.28.2 + resolution: "browserslist@npm:4.28.2" dependencies: - baseline-browser-mapping: "npm:^2.9.0" - caniuse-lite: "npm:^1.0.30001759" - electron-to-chromium: "npm:^1.5.263" - node-releases: "npm:^2.0.27" - update-browserslist-db: "npm:^1.2.0" + baseline-browser-mapping: "npm:^2.10.12" + caniuse-lite: "npm:^1.0.30001782" + electron-to-chromium: "npm:^1.5.328" + node-releases: "npm:^2.0.36" + update-browserslist-db: "npm:^1.2.3" bin: browserslist: cli.js - checksum: 10c0/545a5fa9d7234e3777a7177ec1e9134bb2ba60a69e6b95683f6982b1473aad347c77c1264ccf2ac5dea609a9731fbfbda6b85782bdca70f80f86e28a402504bd + checksum: 10c0/c0228b6330f785b7fa59d2d360124ec6d9322f96ed9f3ee1f873e33ecc9503a6f0ffc3b71191a28c4ff6e930b753b30043da1c33844a9548f3018d491f09ce60 languageName: node linkType: hard @@ -8576,29 +8263,9 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^19.0.1": - version: 19.0.1 - resolution: "cacache@npm:19.0.1" - dependencies: - "@npmcli/fs": "npm:^4.0.0" - fs-minipass: "npm:^3.0.0" - glob: "npm:^10.2.2" - lru-cache: "npm:^10.0.1" - minipass: "npm:^7.0.3" - minipass-collect: "npm:^2.0.1" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - p-map: "npm:^7.0.2" - ssri: "npm:^12.0.0" - tar: "npm:^7.4.3" - unique-filename: "npm:^4.0.0" - checksum: 10c0/01f2134e1bd7d3ab68be851df96c8d63b492b1853b67f2eecb2c37bb682d37cb70bb858a16f2f0554d3c0071be6dfe21456a1ff6fa4b7eed996570d6a25ffe9c - languageName: node - linkType: hard - "cacache@npm:^20.0.0, cacache@npm:^20.0.1": - version: 20.0.3 - resolution: "cacache@npm:20.0.3" + version: 20.0.4 + resolution: "cacache@npm:20.0.4" dependencies: "@npmcli/fs": "npm:^5.0.0" fs-minipass: "npm:^3.0.0" @@ -8610,8 +8277,7 @@ __metadata: minipass-pipeline: "npm:^1.2.4" p-map: "npm:^7.0.2" ssri: "npm:^13.0.0" - unique-filename: "npm:^5.0.0" - checksum: 10c0/c7da1ca694d20e8f8aedabd21dc11518f809a7d2b59aa76a1fc655db5a9e62379e465c157ddd2afe34b19230808882288effa6911b2de26a088a6d5645123462 + checksum: 10c0/539bf4020e44ba9ca5afc2ec435623ed7e0dd80c020097677e6b4a0545df5cc9d20b473212d01209c8b4aea43c0d095af0bb6da97bcb991642ea6fac0d7c462b languageName: node linkType: hard @@ -8622,7 +8288,7 @@ __metadata: languageName: node linkType: hard -"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": +"call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": version: 1.0.2 resolution: "call-bind-apply-helpers@npm:1.0.2" dependencies: @@ -8633,14 +8299,14 @@ __metadata: linkType: hard "call-bind@npm:^1.0.8": - version: 1.0.8 - resolution: "call-bind@npm:1.0.8" - dependencies: - call-bind-apply-helpers: "npm:^1.0.0" - es-define-property: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.4" + version: 1.0.9 + resolution: "call-bind@npm:1.0.9" + dependencies: + call-bind-apply-helpers: "npm:^1.0.2" + es-define-property: "npm:^1.0.1" + get-intrinsic: "npm:^1.3.0" set-function-length: "npm:^1.2.2" - checksum: 10c0/a13819be0681d915144467741b69875ae5f4eba8961eb0bf322aab63ec87f8250eb6d6b0dcbb2e1349876412a56129ca338592b3829ef4343527f5f18a0752d4 + checksum: 10c0/a6621f6da1444481919ce3b4983dff725691e0754d3507ae483ce56e54985f2da7d6f1df512c56dbf28660745cf1ca52553f1fc9aef5557f3ce353ef14fab714 languageName: node linkType: hard @@ -8685,17 +8351,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001751, caniuse-lite@npm:^1.0.30001759": - version: 1.0.30001760 - resolution: "caniuse-lite@npm:1.0.30001760" - checksum: 10c0/cee26dff5c5b15ba073ab230200e43c0d4e88dc3bac0afe0c9ab963df70aaa876c3e513dde42a027f317136bf6e274818d77b073708b74c5807dfad33c029d3c - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001774": - version: 1.0.30001776 - resolution: "caniuse-lite@npm:1.0.30001776" - checksum: 10c0/d5a7624ea50548c6c4381979a2900ac451caa7ecbeafec209309da25d547ba1406355cf66d6c6d537d8532ab5a56f2bbc0bf62300a4c3f66aa6fca5954264735 +"caniuse-lite@npm:^1.0.30001782, caniuse-lite@npm:^1.0.30001787": + version: 1.0.30001797 + resolution: "caniuse-lite@npm:1.0.30001797" + checksum: 10c0/8357f6a70432ad1f1dd39ceeabe6fa7597c76ff45cda2994e4aca3e625bdeb3154b4dfd90b984d343883b2fe4e6abf901739f9f11aa2dfd0254c1de3282ccb76 languageName: node linkType: hard @@ -8806,6 +8465,18 @@ __metadata: languageName: node linkType: hard +"chromium-bidi@npm:14.0.0": + version: 14.0.0 + resolution: "chromium-bidi@npm:14.0.0" + dependencies: + mitt: "npm:^3.0.1" + zod: "npm:^3.24.1" + peerDependencies: + devtools-protocol: "*" + checksum: 10c0/49da03868d3a46c68e40d20f68a75ffacc05b22dc247b7c1b2126716d8d69e618780f8ab1d63e676fb372cddb32b773efaabb2f520217321caece9a258500d31 + languageName: node + linkType: hard + "chromium-bidi@npm:16.0.1": version: 16.0.1 resolution: "chromium-bidi@npm:16.0.1" @@ -8818,14 +8489,7 @@ __metadata: languageName: node linkType: hard -"ci-info@npm:^4.0.0, ci-info@npm:^4.1.0, ci-info@npm:^4.2.0": - version: 4.3.1 - resolution: "ci-info@npm:4.3.1" - checksum: 10c0/7dd82000f514d76ddfe7775e4cb0d66e5c638f5fa0e2a3be29557e898da0d32ac04f231217d414d07fb968b1fbc6d980ee17ddde0d2c516f23da9cfff608f6c1 - languageName: node - linkType: hard - -"ci-info@npm:^4.4.0": +"ci-info@npm:^4.0.0, ci-info@npm:^4.1.0, ci-info@npm:^4.2.0, ci-info@npm:^4.4.0": version: 4.4.0 resolution: "ci-info@npm:4.4.0" checksum: 10c0/44156201545b8dde01aa8a09ee2fe9fc7a73b1bef9adbd4606c9f61c8caeeb73fb7a575c88b0443f7b4edb5ee45debaa59ed54ba5f99698339393ca01349eb3a @@ -8833,9 +8497,9 @@ __metadata: linkType: hard "cjs-module-lexer@npm:^2.1.0": - version: 2.1.1 - resolution: "cjs-module-lexer@npm:2.1.1" - checksum: 10c0/813697c0ed1533f4a88bd8051d8ae1cb1b21d3ff1c6a5720353817d50c3f3f83bb2af6bd83922aae94b3ef90d64d01a6eb123fa8249f4dc7215e3afd89364f86 + version: 2.2.0 + resolution: "cjs-module-lexer@npm:2.2.0" + checksum: 10c0/aec4ca58f87145fac221386790ecaae8b012f2e2359a45acb61d8c75ea4fa84f6ea869f17abc1a7e91a808eff0fed581209632f03540de16f72f0a28f5fd35ac languageName: node linkType: hard @@ -8858,9 +8522,9 @@ __metadata: linkType: hard "cli-spinners@npm:^3.2.0": - version: 3.3.0 - resolution: "cli-spinners@npm:3.3.0" - checksum: 10c0/ce7278be322655e564df4383a2d79ad2c357b43e5771428f33ca69334fde6881d050652ee19854e9ab177867850c9365c2090fdb9fae145b23ceee21bdc77b7e + version: 3.4.0 + resolution: "cli-spinners@npm:3.4.0" + checksum: 10c0/91296c32e147d5b973c9d439d1512306499215437b92f0c0d8be44ec850b555acb8795c19c606b2f6747f31d50c4e41fdde7dcef653f18f0ae7cdd58e99a4764 languageName: node linkType: hard @@ -8877,17 +8541,7 @@ __metadata: languageName: node linkType: hard -"cli-truncate@npm:^5.0.0": - version: 5.1.1 - resolution: "cli-truncate@npm:5.1.1" - dependencies: - slice-ansi: "npm:^7.1.0" - string-width: "npm:^8.0.0" - checksum: 10c0/3842920829a62f3e041ce39199050c42706c3c9c756a4efc8b86d464e102d1fa031d8b1b9b2e3bb36e1017c763558275472d031bdc884c1eff22a2f20e4f6b0a - languageName: node - linkType: hard - -"cli-truncate@npm:^5.2.0": +"cli-truncate@npm:^5.0.0, cli-truncate@npm:^5.2.0": version: 5.2.0 resolution: "cli-truncate@npm:5.2.0" dependencies: @@ -9075,9 +8729,9 @@ __metadata: linkType: hard "commander@npm:^14.0.0": - version: 14.0.2 - resolution: "commander@npm:14.0.2" - checksum: 10c0/245abd1349dbad5414cb6517b7b5c584895c02c4f7836ff5395f301192b8566f9796c82d7bd6c92d07eba8775fe4df86602fca5d86d8d10bcc2aded1e21c2aeb + version: 14.0.3 + resolution: "commander@npm:14.0.3" + checksum: 10c0/755652564bbf56ff2ff083313912b326450d3f8d8c85f4b71416539c9a05c3c67dbd206821ca72635bf6b160e2afdefcb458e86b317827d5cb333b69ce7f1a24 languageName: node linkType: hard @@ -9196,11 +8850,9 @@ __metadata: linkType: hard "content-disposition@npm:^1.0.0": - version: 1.0.0 - resolution: "content-disposition@npm:1.0.0" - dependencies: - safe-buffer: "npm:5.2.1" - checksum: 10c0/c7b1ba0cea2829da0352ebc1b7f14787c73884bc707c8bc2271d9e3bf447b372270d09f5d3980dc5037c749ceef56b9a13fccd0b0001c87c3f12579967e4dd27 + version: 1.1.0 + resolution: "content-disposition@npm:1.1.0" + checksum: 10c0/94e0aef65873e69330f5f187fbc44ebce593bdcb8013dd8a68b7d0f159ca089bd30db3f8095d829f81c341695b60a6085ee6e15e6d775c4a325b586cc8d91974 languageName: node linkType: hard @@ -9220,16 +8872,14 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-angular@npm:^8.2.0": - version: 8.2.0 - resolution: "conventional-changelog-angular@npm:8.2.0" - dependencies: - compare-func: "npm:^2.0.0" - checksum: 10c0/15f4d455df3152db62d3a7e92c83abe2438721e4b6736cae20b1ce17162fa0aca098b3a62f4f50d3541e4aa300f89f8768d7ba45b83cca77336ffb3700669e9e +"content-type@npm:^2.0.0": + version: 2.0.0 + resolution: "content-type@npm:2.0.0" + checksum: 10c0/491539fff707d7594b0ca4fabcc084bef2a31ffa754ff0a4f80c4377e3963cff0394317f9271c24087596c97fa675bc123d61fa34ffe65b4904e7d3d3098de72 languageName: node linkType: hard -"conventional-changelog-angular@npm:^8.3.1": +"conventional-changelog-angular@npm:^8.2.0, conventional-changelog-angular@npm:^8.3.1": version: 8.3.1 resolution: "conventional-changelog-angular@npm:8.3.1" dependencies: @@ -9239,11 +8889,11 @@ __metadata: linkType: hard "conventional-changelog-conventionalcommits@npm:^9.2.0": - version: 9.2.0 - resolution: "conventional-changelog-conventionalcommits@npm:9.2.0" + version: 9.3.1 + resolution: "conventional-changelog-conventionalcommits@npm:9.3.1" dependencies: compare-func: "npm:^2.0.0" - checksum: 10c0/1ea8f1b9a9044680c3faf9d7a963a95d65bcec45815426ebdd00f1bd2bfa26aa26c454ebaa3fb67f3dd2c1b69ad48f25f20dd7837b535210576d3e18d5e8f3a7 + checksum: 10c0/e3d0dfe5680899da3660a7fbc859de1a92dd9358dc497624c3582596173713a80dcc8236d844116a3ba8403350e244c007c0c7fa5796631aea19e464cc6c2f44 languageName: node linkType: hard @@ -9295,30 +8945,7 @@ __metadata: languageName: node linkType: hard -"conventional-commits-parser@npm:^6.1.0": - version: 6.2.1 - resolution: "conventional-commits-parser@npm:6.2.1" - dependencies: - meow: "npm:^13.0.0" - bin: - conventional-commits-parser: dist/cli/index.js - checksum: 10c0/217b3fff627802f7fd7cb09bdfe897aa76986865543dfaa99b7957e4717d039e1e12c4a9b72706f098a5716bbbbdae540ef0b2429f7219d5fc5be0f190f1bc1e - languageName: node - linkType: hard - -"conventional-commits-parser@npm:^6.3.0": - version: 6.3.0 - resolution: "conventional-commits-parser@npm:6.3.0" - dependencies: - "@simple-libs/stream-utils": "npm:^1.2.0" - meow: "npm:^13.0.0" - bin: - conventional-commits-parser: dist/cli/index.js - checksum: 10c0/7b152db0b63617fb5f993c3422942c05f48ff42fef4350d7e73b1d8a9f24489050b126478f2aabee5e45f205dbd02cb0b486e4bb865f9c0b18c35b4d13952b25 - languageName: node - linkType: hard - -"conventional-commits-parser@npm:^6.4.0": +"conventional-commits-parser@npm:^6.1.0, conventional-commits-parser@npm:^6.3.0, conventional-commits-parser@npm:^6.4.0": version: 6.4.0 resolution: "conventional-commits-parser@npm:6.4.0" dependencies: @@ -9380,12 +9007,12 @@ __metadata: languageName: node linkType: hard -"copy-anything@npm:^2.0.1": - version: 2.0.6 - resolution: "copy-anything@npm:2.0.6" +"copy-anything@npm:^3.0.5": + version: 3.0.5 + resolution: "copy-anything@npm:3.0.5" dependencies: - is-what: "npm:^3.14.1" - checksum: 10c0/2702998a8cc015f9917385b7f16b0d85f1f6e5e2fd34d99f14df584838f492f49aa0c390d973684c687e895c5c58d08b308a0400ac3e1e3d6fa1e5884a5402ad + is-what: "npm:^4.1.8" + checksum: 10c0/01eadd500c7e1db71d32d95a3bfaaedcb839ef891c741f6305ab0461398056133de08f2d1bf4c392b364e7bdb7ce498513896e137a7a183ac2516b065c28a4fe languageName: node linkType: hard @@ -9414,21 +9041,30 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.43.0": - version: 3.46.0 - resolution: "core-js-compat@npm:3.46.0" +"copyfiles@npm:^2.4.1": + version: 2.4.1 + resolution: "copyfiles@npm:2.4.1" dependencies: - browserslist: "npm:^4.26.3" - checksum: 10c0/d50f8870e14434477acac1f9f52929b6298fd86313386c4105be0d43978708ad10ab3b80b9b54d77b93761dbc5430e3151de0c792dabd117b58c25b551b78e20 + glob: "npm:^7.0.5" + minimatch: "npm:^3.0.3" + mkdirp: "npm:^1.0.4" + noms: "npm:0.0.0" + through2: "npm:^2.0.1" + untildify: "npm:^4.0.0" + yargs: "npm:^16.1.0" + bin: + copyfiles: copyfiles + copyup: copyfiles + checksum: 10c0/e65cd055ec9acc14997b0ace83973d73f8d9c68167cbf4293c40b52d100af09a8c8da329042d52dc33422c0a8cbf74c6efb25e9ae088667721653659bd67bf57 languageName: node linkType: hard -"core-js-compat@npm:^3.48.0": - version: 3.48.0 - resolution: "core-js-compat@npm:3.48.0" +"core-js-compat@npm:^3.43.0, core-js-compat@npm:^3.48.0": + version: 3.49.0 + resolution: "core-js-compat@npm:3.49.0" dependencies: browserslist: "npm:^4.28.1" - checksum: 10c0/7bb6522127928fff5d56c7050f379a034de85fe2d5c6e6925308090d4b51fb0cb88e0db99619c932ee84d8756d531bf851232948fe1ad18598cb1e7278e8db13 + checksum: 10c0/546e64b7ce45f724825bc13c1347f35c0459a6e71c0dcccff3ec21fbff463f5b0b97fc1220e6d90302153863489301793276fe2bf96f46001ff555ead4140308 languageName: node linkType: hard @@ -9447,48 +9083,31 @@ __metadata: linkType: hard "cors@npm:^2.8.5, cors@npm:~2.8.5": - version: 2.8.5 - resolution: "cors@npm:2.8.5" + version: 2.8.6 + resolution: "cors@npm:2.8.6" dependencies: object-assign: "npm:^4" vary: "npm:^1" - checksum: 10c0/373702b7999409922da80de4a61938aabba6929aea5b6fd9096fefb9e8342f626c0ebd7507b0e8b0b311380744cc985f27edebc0a26e0ddb784b54e1085de761 + checksum: 10c0/ab2bc57b8af8ef8476682a59647f7c55c1a7d406b559ac06119aa1c5f70b96d35036864d197b24cf86e228e4547231088f1f94ca05061dbb14d89cc0bc9d4cab languageName: node linkType: hard "cosmiconfig-typescript-loader@npm:^6.1.0": - version: 6.2.0 - resolution: "cosmiconfig-typescript-loader@npm:6.2.0" + version: 6.3.0 + resolution: "cosmiconfig-typescript-loader@npm:6.3.0" dependencies: - jiti: "npm:^2.6.1" + jiti: "npm:2.6.1" peerDependencies: "@types/node": "*" cosmiconfig: ">=9" typescript: ">=5" - checksum: 10c0/0fd8fd9b9b6a04eec75617b965ce0a1f63310fe29a361c1f95cb971e05dbbb935291899c2b15abfd69e09db58dbe97077f24a7c61414bbc6c3e78349b4314ad7 - languageName: node - linkType: hard - -"cosmiconfig@npm:^9.0.0": - version: 9.0.0 - resolution: "cosmiconfig@npm:9.0.0" - dependencies: - env-paths: "npm:^2.2.1" - import-fresh: "npm:^3.3.0" - js-yaml: "npm:^4.1.0" - parse-json: "npm:^5.2.0" - peerDependencies: - typescript: ">=4.9.5" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10c0/1c1703be4f02a250b1d6ca3267e408ce16abfe8364193891afc94c2d5c060b69611fdc8d97af74b7e6d5d1aac0ab2fb94d6b079573146bc2d756c2484ce5f0ee + checksum: 10c0/dd53519bf59b31c32a831f1140eaa44f4f0bf49229b7e3ba27bb6f26097c3ecff955a490e70b31349049463066b5047bd129ab82ed078be9b1f1f22ccb776c6a languageName: node linkType: hard -"cosmiconfig@npm:^9.0.1": - version: 9.0.1 - resolution: "cosmiconfig@npm:9.0.1" +"cosmiconfig@npm:^9.0.0, cosmiconfig@npm:^9.0.1": + version: 9.0.2 + resolution: "cosmiconfig@npm:9.0.2" dependencies: env-paths: "npm:^2.2.1" import-fresh: "npm:^3.3.0" @@ -9499,7 +9118,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/a5d4d95599687532ee072bca60170133c24d4e08cd795529e0f22c6ce5fde9409eaf4f26e36e3d671f43270ef858fc68f3c7b0ec28e58fac7ddebda5b7725306 + checksum: 10c0/132d32863c0b3d9ace7010a10011e09089532b36e3b11e02004d671dcbd8b8f2f16293b82d510d9c15890f30358baf8722127c7b1c011449c90b6a178f9c6594 languageName: node linkType: hard @@ -9517,8 +9136,8 @@ __metadata: linkType: hard "cpy@npm:^13.2.0": - version: 13.2.1 - resolution: "cpy@npm:13.2.1" + version: 13.2.2 + resolution: "cpy@npm:13.2.2" dependencies: copy-file: "npm:^11.1.0" globby: "npm:^16.1.0" @@ -9526,14 +9145,7 @@ __metadata: micromatch: "npm:^4.0.8" p-filter: "npm:^4.1.0" p-map: "npm:^7.0.4" - checksum: 10c0/b93c2c8c4c639c6f1a894d14ee9324217b6968b7b04e537fce656cc2ea893fc3bd4fae2d7b15c41f54b292dfcce61146cb0ae25aa50a8dc86d7ae4061d3cb192 - languageName: node - linkType: hard - -"create-require@npm:^1.1.0": - version: 1.1.1 - resolution: "create-require@npm:1.1.1" - checksum: 10c0/157cbc59b2430ae9a90034a5f3a1b398b6738bf510f713edc4d4e45e169bc514d3d99dd34d8d01ca7ae7830b5b8b537e46ae8f3c8f932371b0875c0151d7ec91 + checksum: 10c0/0dc5ee4c21368626f89bc16c903677cfb6b924b76ac65c7bd6165c29e09f02b262b9d307339af0e9cb69c1052af8297fef34c659a945d9e0d0ccc0c4335a50f2 languageName: node linkType: hard @@ -9561,9 +9173,9 @@ __metadata: languageName: node linkType: hard -"css-loader@npm:7.1.3": - version: 7.1.3 - resolution: "css-loader@npm:7.1.3" +"css-loader@npm:7.1.4": + version: 7.1.4 + resolution: "css-loader@npm:7.1.4" dependencies: icss-utils: "npm:^5.1.0" postcss: "npm:^8.4.40" @@ -9574,14 +9186,14 @@ __metadata: postcss-value-parser: "npm:^4.2.0" semver: "npm:^7.6.3" peerDependencies: - "@rspack/core": 0.x || 1.x + "@rspack/core": 0.x || ^1.0.0 || ^2.0.0-0 webpack: ^5.27.0 peerDependenciesMeta: "@rspack/core": optional: true webpack: optional: true - checksum: 10c0/8743a8f1a0beff371d0fbeae7dbae7b079e546c734e3c936f0c5dc4603a716a576200e9261c934565584cf0e090cca444efb613efa4282ee3fcab81db4c73c7e + checksum: 10c0/a3a3a6b564d4fcf978961be8bc6ca06fb3836fc8fbd729ddae4b0b94166a0f5ccf119fb3301a6fecbe90608a8edbfd418bdc644cf053615e6271aa65b3fdc00b languageName: node linkType: hard @@ -9611,17 +9223,7 @@ __metadata: languageName: node linkType: hard -"css-tree@npm:^3.0.0": - version: 3.1.0 - resolution: "css-tree@npm:3.1.0" - dependencies: - mdn-data: "npm:2.12.2" - source-map-js: "npm:^1.0.1" - checksum: 10c0/b5715852c2f397c715ca00d56ec53fc83ea596295ae112eb1ba6a1bda3b31086380e596b1d8c4b980fe6da09e7d0fc99c64d5bb7313030dd0fba9c1415f30979 - languageName: node - linkType: hard - -"css-tree@npm:^3.2.1": +"css-tree@npm:^3.0.0, css-tree@npm:^3.2.1": version: 3.2.1 resolution: "css-tree@npm:3.2.1" dependencies: @@ -9729,6 +9331,13 @@ __metadata: languageName: node linkType: hard +"data-uri-to-buffer@npm:^6.0.2": + version: 6.0.2 + resolution: "data-uri-to-buffer@npm:6.0.2" + checksum: 10c0/f76922bf895b3d7d443059ff278c9cc5efc89d70b8b80cd9de0aa79b3adc6d7a17948eefb8692e30398c43635f70ece1673d6085cc9eba2878dbc6c6da5292ac + languageName: node + linkType: hard + "data-urls@npm:^5.0.0": version: 5.0.0 resolution: "data-urls@npm:5.0.0" @@ -9764,9 +9373,9 @@ __metadata: linkType: hard "dayjs@npm:^1.10.4": - version: 1.11.19 - resolution: "dayjs@npm:1.11.19" - checksum: 10c0/7d8a6074a343f821f81ea284d700bd34ea6c7abbe8d93bce7aba818948957c1b7f56131702e5e890a5622cdfc05dcebe8aed0b8313bdc6838a594d7846b0b000 + version: 1.11.21 + resolution: "dayjs@npm:1.11.21" + checksum: 10c0/bd97dfdc4bfea3c66268635690313828b386faa040fbc1f829ff42a2bd748b72c9d9b3c8f9616ce9e61fcb78923f1461a462c969c54b1084458ae1b715898fb0 languageName: node linkType: hard @@ -9779,7 +9388,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.3.6, debug@npm:^4.4.0, debug@npm:^4.4.1, debug@npm:^4.4.3": +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.6, debug@npm:^4.4.0, debug@npm:^4.4.3, debug@npm:~4.4.1": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -9800,18 +9409,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:~4.3.1, debug@npm:~4.3.2, debug@npm:~4.3.4": - version: 4.3.7 - resolution: "debug@npm:4.3.7" - dependencies: - ms: "npm:^2.1.3" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b - languageName: node - linkType: hard - "decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" @@ -9827,14 +9424,14 @@ __metadata: linkType: hard "dedent@npm:^1.6.0": - version: 1.7.0 - resolution: "dedent@npm:1.7.0" + version: 1.7.2 + resolution: "dedent@npm:1.7.2" peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: babel-plugin-macros: optional: true - checksum: 10c0/c5e8a8beb5072bd5e520cb64b27a82d7ec3c2a63ee5ce47dbc2a05d5b7700cefd77a992a752cd0a8b1d979c1db06b14fb9486e805f3ad6088eda6e07cd9bf2d5 + checksum: 10c0/acaff07cac355b93f17b1b17ebbb84d3cc55af6ab4b7814c3f505e061903e168bc6bf9ddce331552d64dee1525f0b4c549c9ade46aebfac6f69caaed74e90751 languageName: node linkType: hard @@ -9860,29 +9457,19 @@ __metadata: linkType: hard "default-browser-id@npm:^5.0.0": - version: 5.0.0 - resolution: "default-browser-id@npm:5.0.0" - checksum: 10c0/957fb886502594c8e645e812dfe93dba30ed82e8460d20ce39c53c5b0f3e2afb6ceaec2249083b90bdfbb4cb0f34e1f73fde3d68cac00becdbcfd894156b5ead - languageName: node - linkType: hard - -"default-browser@npm:^5.2.1": - version: 5.2.1 - resolution: "default-browser@npm:5.2.1" - dependencies: - bundle-name: "npm:^4.1.0" - default-browser-id: "npm:^5.0.0" - checksum: 10c0/73f17dc3c58026c55bb5538749597db31f9561c0193cd98604144b704a981c95a466f8ecc3c2db63d8bfd04fb0d426904834cfc91ae510c6aeb97e13c5167c4d + version: 5.0.1 + resolution: "default-browser-id@npm:5.0.1" + checksum: 10c0/5288b3094c740ef3a86df9b999b04ff5ba4dee6b64e7b355c0fff5217752c8c86908d67f32f6cba9bb4f9b7b61a1b640c0a4f9e34c57e0ff3493559a625245ee languageName: node linkType: hard -"default-browser@npm:^5.4.0": - version: 5.4.0 - resolution: "default-browser@npm:5.4.0" +"default-browser@npm:^5.2.1, default-browser@npm:^5.4.0": + version: 5.5.0 + resolution: "default-browser@npm:5.5.0" dependencies: bundle-name: "npm:^4.1.0" default-browser-id: "npm:^5.0.0" - checksum: 10c0/a49ddd0c7b1a319163f64a5fc68ebb45a98548ea23a3155e04518f026173d85cfa2f451b646366c36c8f70b01e4cb773e23d1d22d2c61d8b84e5fbf151b4b609 + checksum: 10c0/576593b617b17a7223014b4571bfe1c06a2581a4eb8b130985d90d253afa3f40999caec70eb0e5776e80d4af6a41cce91018cd3f86e57ad578bf59e46fb19abe languageName: node linkType: hard @@ -9904,6 +9491,17 @@ __metadata: languageName: node linkType: hard +"degenerator@npm:^5.0.0": + version: 5.0.1 + resolution: "degenerator@npm:5.0.1" + dependencies: + ast-types: "npm:^0.13.4" + escodegen: "npm:^2.1.0" + esprima: "npm:^4.0.1" + checksum: 10c0/e48d8a651edeb512a648711a09afec269aac6de97d442a4bb9cf121a66877e0eec11b9727100a10252335c0666ae1c84a8bc1e3a3f47788742c975064d2c7b1c + languageName: node + linkType: hard + "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -9946,15 +9544,6 @@ __metadata: languageName: node linkType: hard -"detect-libc@npm:^1.0.3": - version: 1.0.3 - resolution: "detect-libc@npm:1.0.3" - bin: - detect-libc: ./bin/detect-libc.js - checksum: 10c0/4da0deae9f69e13bc37a0902d78bf7169480004b1fed3c19722d56cff578d16f0e11633b7fbf5fb6249181236c72e90024cbd68f0b9558ae06e281f47326d50d - languageName: node - linkType: hard - "detect-libc@npm:^2.0.1, detect-libc@npm:^2.0.3": version: 2.1.2 resolution: "detect-libc@npm:2.1.2" @@ -9976,6 +9565,13 @@ __metadata: languageName: node linkType: hard +"devtools-protocol@npm:0.0.1608973": + version: 0.0.1608973 + resolution: "devtools-protocol@npm:0.0.1608973" + checksum: 10c0/1e634ebf2645718c76d00d3704a4c90254b9ecbfb350b018c53729114ec0de31e88d43e43f391136a71834e4629db34ac677778044f2214bda9c433456f48a77 + languageName: node + linkType: hard + "devtools-protocol@npm:0.0.1624250": version: 0.0.1624250 resolution: "devtools-protocol@npm:0.0.1624250" @@ -9990,13 +9586,6 @@ __metadata: languageName: node linkType: hard -"diff@npm:^4.0.1": - version: 4.0.2 - resolution: "diff@npm:4.0.2" - checksum: 10c0/81b91f9d39c4eaca068eb0c1eb0e4afbdc5bb2941d197f513dd596b820b956fef43485876226d65d497bebc15666aa2aa82c679e84f65d5f2bfbf14ee46e32c1 - languageName: node - linkType: hard - "dns-packet@npm:^5.2.2": version: 5.6.1 resolution: "dns-packet@npm:5.6.1" @@ -10085,7 +9674,7 @@ __metadata: languageName: node linkType: hard -"domutils@npm:^3.2.1, domutils@npm:^3.2.2": +"domutils@npm:^3.2.2": version: 3.2.2 resolution: "domutils@npm:3.2.2" dependencies: @@ -10166,17 +9755,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.238": - version: 1.5.249 - resolution: "electron-to-chromium@npm:1.5.249" - checksum: 10c0/f5ca6663786b30a063fe42c97a4c3fa8db946a055d5a7a940fbb57d9f86011222b8566048cdb973574f9d02ac44f02ece65eeebf99cc146a42059af7adfb4fe7 - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.5.263": - version: 1.5.267 - resolution: "electron-to-chromium@npm:1.5.267" - checksum: 10c0/0732bdb891b657f2e43266a3db8cf86fff6cecdcc8d693a92beff214e136cb5c2ee7dc5945ed75fa1db16e16bad0c38695527a020d15f39e79084e0b2e447621 +"electron-to-chromium@npm:^1.5.328": + version: 1.5.368 + resolution: "electron-to-chromium@npm:1.5.368" + checksum: 10c0/229fb871d2b59d3a54129ee9801cd5853258eec1503d9b3b52633a0902589693efa2d17f71c26cf28ec369bc9ed78e609206e8740745c9325d0fc464ac4559d6 languageName: node linkType: hard @@ -10229,7 +9811,7 @@ __metadata: languageName: node linkType: hard -"encoding@npm:^0.1.11, encoding@npm:^0.1.13": +"encoding@npm:^0.1.11": version: 0.1.13 resolution: "encoding@npm:0.1.13" dependencies: @@ -10255,29 +9837,30 @@ __metadata: linkType: hard "engine.io@npm:~6.6.0": - version: 6.6.4 - resolution: "engine.io@npm:6.6.4" + version: 6.6.8 + resolution: "engine.io@npm:6.6.8" dependencies: "@types/cors": "npm:^2.8.12" "@types/node": "npm:>=10.0.0" + "@types/ws": "npm:^8.5.12" accepts: "npm:~1.3.4" base64id: "npm:2.0.0" cookie: "npm:~0.7.2" cors: "npm:~2.8.5" - debug: "npm:~4.3.1" + debug: "npm:~4.4.1" engine.io-parser: "npm:~5.2.1" - ws: "npm:~8.17.1" - checksum: 10c0/845761163f8ea7962c049df653b75dafb6b3693ad6f59809d4474751d7b0392cbf3dc2730b8a902ff93677a91fd28711d34ab29efd348a8a4b49c6b0724021ab + ws: "npm:~8.20.1" + checksum: 10c0/3cf705d4be8683322b3ff3c09e680ca72e03f2a475b2c76e5945c920aa85b6edc4ef442df18b0a1a7eaa205797802b993ed9f194bff27ed09f46b43711e88af2 languageName: node linkType: hard -"enhanced-resolve@npm:^5.19.0": - version: 5.19.0 - resolution: "enhanced-resolve@npm:5.19.0" +"enhanced-resolve@npm:^5.20.0": + version: 5.23.0 + resolution: "enhanced-resolve@npm:5.23.0" dependencies: graceful-fs: "npm:^4.2.4" - tapable: "npm:^2.3.0" - checksum: 10c0/966b1dffb82d5f6a4d6a86e904e812104a999066aa29f9223040aaa751e7c453b462a3f5ef91f8bd4408131ff6f7f90651dd1c804bdcb7944e2099a9c2e45ee2 + tapable: "npm:^2.3.3" + checksum: 10c0/7d0028f3ffb0699995ced13dc0f36f0697c0bb07859b228112a1e1c76ee3f76549b96e08f5452bc766be8c8bd4d67708c82f48bb46182ca427b3ab906b9c0739 languageName: node linkType: hard @@ -10314,6 +9897,13 @@ __metadata: languageName: node linkType: hard +"entities@npm:^7.0.1": + version: 7.0.1 + resolution: "entities@npm:7.0.1" + checksum: 10c0/b4fb9937bb47ecb00aaaceb9db9cdd1cc0b0fb649c0e843d05cf5dbbd2e9d2df8f98721d8b1b286445689c72af7b54a7242fc2d63ef7c9739037a8c73363e7ca + languageName: node + linkType: hard + "entities@npm:^8.0.0": version: 8.0.0 resolution: "entities@npm:8.0.0" @@ -10335,13 +9925,6 @@ __metadata: languageName: node linkType: hard -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 - languageName: node - linkType: hard - "errno@npm:^0.1.1": version: 0.1.8 resolution: "errno@npm:0.1.8" @@ -10377,18 +9960,18 @@ __metadata: linkType: hard "es-module-lexer@npm:^2.0.0": - version: 2.0.0 - resolution: "es-module-lexer@npm:2.0.0" - checksum: 10c0/ae78dbbd43035a4b972c46cfb6877e374ea290adfc62bc2f5a083fea242c0b2baaab25c5886af86be55f092f4a326741cb94334cd3c478c383fdc8a9ec5ff817 + version: 2.1.0 + resolution: "es-module-lexer@npm:2.1.0" + checksum: 10c0/93bcf2454fa72d67fe3ccd0abef8ce7933f5840a319513418a643dd8e9c6aa8f49709cecfae02ded722805dd327232d30723a807cc52e6809d6ac697c62c29fb languageName: node linkType: hard "es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": - version: 1.1.1 - resolution: "es-object-atoms@npm:1.1.1" + version: 1.1.2 + resolution: "es-object-atoms@npm:1.1.2" dependencies: es-errors: "npm:^1.3.0" - checksum: 10c0/65364812ca4daf48eb76e2a3b7a89b3f6a2e62a1c420766ce9f692665a29d94fe41fe88b65f24106f449859549711e4b40d9fb8002d862dfd7eb1c512d10be0c + checksum: 10c0/1772861f094f739d6f41b579cfb9a18579daffeb434552a370a5fbef50a32d22227e27b63fdbb757b7ddd429d1b42fe52ccae7966d9302a2ec221b6f1b41bbc4 languageName: node linkType: hard @@ -10405,125 +9988,29 @@ __metadata: linkType: hard "es-toolkit@npm:^1.46.0": - version: 1.46.1 - resolution: "es-toolkit@npm:1.46.1" + version: 1.47.0 + resolution: "es-toolkit@npm:1.47.0" dependenciesMeta: "@trivago/prettier-plugin-sort-imports@4.3.0": unplugged: true prettier-plugin-sort-re-exports@0.0.1: unplugged: true - checksum: 10c0/6a4c3dd0ddc2138fa13d983d93ebaf8061759c52c2cf7c3101315139fc1fca826d253daa67fe85ad880c03cc4c092bd53a83a7cbf58b4721c251479122ba5303 - languageName: node - linkType: hard - -"esbuild-wasm@npm:0.27.3": - version: 0.27.3 - resolution: "esbuild-wasm@npm:0.27.3" - bin: - esbuild: bin/esbuild - checksum: 10c0/463971cc572c3863919b73e764d44e1691feb9099d6eb5b9f619ad68553e4f4936d907b708052ba6edc53ce4fe5464ea3d359f27535234ce03df4cdc35da56e8 + vitepress-plugin-sandpack@1.1.4: + unplugged: true + checksum: 10c0/6edc9709fccc409fa4adddd318971d8a18335de9225f2dc99021aacba44fe66a2437a831923589c643865caab261a087bd974338294a60bb5a74932caa102901 languageName: node linkType: hard -"esbuild-wasm@npm:>=0.23.0": - version: 0.27.1 - resolution: "esbuild-wasm@npm:0.27.1" - bin: - esbuild: bin/esbuild - checksum: 10c0/2b4a03b4b4390b37b68325e15538dd423dcad5dd02968b734e01c3b5f549badd12541e21d2e96cb088c564ab7934272a9fc658805a75a40dd9129b7d2c1c8335 - languageName: node - linkType: hard - -"esbuild@npm:0.27.3": - version: 0.27.3 - resolution: "esbuild@npm:0.27.3" - dependencies: - "@esbuild/aix-ppc64": "npm:0.27.3" - "@esbuild/android-arm": "npm:0.27.3" - "@esbuild/android-arm64": "npm:0.27.3" - "@esbuild/android-x64": "npm:0.27.3" - "@esbuild/darwin-arm64": "npm:0.27.3" - "@esbuild/darwin-x64": "npm:0.27.3" - "@esbuild/freebsd-arm64": "npm:0.27.3" - "@esbuild/freebsd-x64": "npm:0.27.3" - "@esbuild/linux-arm": "npm:0.27.3" - "@esbuild/linux-arm64": "npm:0.27.3" - "@esbuild/linux-ia32": "npm:0.27.3" - "@esbuild/linux-loong64": "npm:0.27.3" - "@esbuild/linux-mips64el": "npm:0.27.3" - "@esbuild/linux-ppc64": "npm:0.27.3" - "@esbuild/linux-riscv64": "npm:0.27.3" - "@esbuild/linux-s390x": "npm:0.27.3" - "@esbuild/linux-x64": "npm:0.27.3" - "@esbuild/netbsd-arm64": "npm:0.27.3" - "@esbuild/netbsd-x64": "npm:0.27.3" - "@esbuild/openbsd-arm64": "npm:0.27.3" - "@esbuild/openbsd-x64": "npm:0.27.3" - "@esbuild/openharmony-arm64": "npm:0.27.3" - "@esbuild/sunos-x64": "npm:0.27.3" - "@esbuild/win32-arm64": "npm:0.27.3" - "@esbuild/win32-ia32": "npm:0.27.3" - "@esbuild/win32-x64": "npm:0.27.3" - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-arm64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-arm64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/openharmony-arm64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true +"esbuild-wasm@npm:0.28.0, esbuild-wasm@npm:>=0.23.0": + version: 0.28.0 + resolution: "esbuild-wasm@npm:0.28.0" bin: esbuild: bin/esbuild - checksum: 10c0/fdc3f87a3f08b3ef98362f37377136c389a0d180fda4b8d073b26ba930cf245521db0a368f119cc7624bc619248fff1439f5811f062d853576f8ffa3df8ee5f1 + checksum: 10c0/da54e4274250d90865b40cb726c533281cd5801592193d56f7fcf1f94d0b6245a4e61a446ae413516c8402fe4184cc3d1d4aabac73cbedc154ca355fdf725e62 languageName: node linkType: hard -"esbuild@npm:0.28.0": +"esbuild@npm:0.28.0, esbuild@npm:>=0.23.0, esbuild@npm:^0.28.0": version: 0.28.0 resolution: "esbuild@npm:0.28.0" dependencies: @@ -10612,36 +10099,36 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:>=0.23.0, esbuild@npm:^0.27.0": - version: 0.27.1 - resolution: "esbuild@npm:0.27.1" - dependencies: - "@esbuild/aix-ppc64": "npm:0.27.1" - "@esbuild/android-arm": "npm:0.27.1" - "@esbuild/android-arm64": "npm:0.27.1" - "@esbuild/android-x64": "npm:0.27.1" - "@esbuild/darwin-arm64": "npm:0.27.1" - "@esbuild/darwin-x64": "npm:0.27.1" - "@esbuild/freebsd-arm64": "npm:0.27.1" - "@esbuild/freebsd-x64": "npm:0.27.1" - "@esbuild/linux-arm": "npm:0.27.1" - "@esbuild/linux-arm64": "npm:0.27.1" - "@esbuild/linux-ia32": "npm:0.27.1" - "@esbuild/linux-loong64": "npm:0.27.1" - "@esbuild/linux-mips64el": "npm:0.27.1" - "@esbuild/linux-ppc64": "npm:0.27.1" - "@esbuild/linux-riscv64": "npm:0.27.1" - "@esbuild/linux-s390x": "npm:0.27.1" - "@esbuild/linux-x64": "npm:0.27.1" - "@esbuild/netbsd-arm64": "npm:0.27.1" - "@esbuild/netbsd-x64": "npm:0.27.1" - "@esbuild/openbsd-arm64": "npm:0.27.1" - "@esbuild/openbsd-x64": "npm:0.27.1" - "@esbuild/openharmony-arm64": "npm:0.27.1" - "@esbuild/sunos-x64": "npm:0.27.1" - "@esbuild/win32-arm64": "npm:0.27.1" - "@esbuild/win32-ia32": "npm:0.27.1" - "@esbuild/win32-x64": "npm:0.27.1" +"esbuild@npm:^0.27.0": + version: 0.27.7 + resolution: "esbuild@npm:0.27.7" + dependencies: + "@esbuild/aix-ppc64": "npm:0.27.7" + "@esbuild/android-arm": "npm:0.27.7" + "@esbuild/android-arm64": "npm:0.27.7" + "@esbuild/android-x64": "npm:0.27.7" + "@esbuild/darwin-arm64": "npm:0.27.7" + "@esbuild/darwin-x64": "npm:0.27.7" + "@esbuild/freebsd-arm64": "npm:0.27.7" + "@esbuild/freebsd-x64": "npm:0.27.7" + "@esbuild/linux-arm": "npm:0.27.7" + "@esbuild/linux-arm64": "npm:0.27.7" + "@esbuild/linux-ia32": "npm:0.27.7" + "@esbuild/linux-loong64": "npm:0.27.7" + "@esbuild/linux-mips64el": "npm:0.27.7" + "@esbuild/linux-ppc64": "npm:0.27.7" + "@esbuild/linux-riscv64": "npm:0.27.7" + "@esbuild/linux-s390x": "npm:0.27.7" + "@esbuild/linux-x64": "npm:0.27.7" + "@esbuild/netbsd-arm64": "npm:0.27.7" + "@esbuild/netbsd-x64": "npm:0.27.7" + "@esbuild/openbsd-arm64": "npm:0.27.7" + "@esbuild/openbsd-x64": "npm:0.27.7" + "@esbuild/openharmony-arm64": "npm:0.27.7" + "@esbuild/sunos-x64": "npm:0.27.7" + "@esbuild/win32-arm64": "npm:0.27.7" + "@esbuild/win32-ia32": "npm:0.27.7" + "@esbuild/win32-x64": "npm:0.27.7" dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -10697,7 +10184,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 10c0/8bfcf13a499a9e7b7da4b68273e12b453c7d7a5e39c944c2e5a4c64a0594d6df1391fc168a5353c22bc94eeae38dd9897199ddbbc4973525b0aae18186e996bd + checksum: 10c0/ccd51f0555708bc9ff4ec9dc3ac92d3daacd45ecaac949ca8645984c5c323bf8cefe98c2df307418685e0b4ce37f9a3bdbfe8e3651fe632a0059a436195a17d4 languageName: node linkType: hard @@ -10802,21 +10289,7 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^4.2.1": - version: 4.2.1 - resolution: "eslint-visitor-keys@npm:4.2.1" - checksum: 10c0/fcd43999199d6740db26c58dbe0c2594623e31ca307e616ac05153c9272f12f1364f5a0b1917a8e962268fdecc6f3622c1c2908b4fcc2e047a106fe6de69dc43 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^5.0.0": - version: 5.0.0 - resolution: "eslint-visitor-keys@npm:5.0.0" - checksum: 10c0/5ec68b7ae350f6e7813a9ab469f8c64e01e5a954e6e6ee6dc441cc24d315eb342e5fb81ab5fc21f352cf0125096ab4ed93ca892f602a1576ad1eedce591fe64a - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^5.0.1": +"eslint-visitor-keys@npm:^5.0.0, eslint-visitor-keys@npm:^5.0.1": version: 5.0.1 resolution: "eslint-visitor-keys@npm:5.0.1" checksum: 10c0/16190bdf2cbae40a1109384c94450c526a79b0b9c3cb21e544256ed85ac48a4b84db66b74a6561d20fe6ab77447f150d711c2ad5ad74df4fcc133736bce99678 @@ -10975,20 +10448,22 @@ __metadata: languageName: node linkType: hard -"eventemitter3@npm:^5.0.1": - version: 5.0.1 - resolution: "eventemitter3@npm:5.0.1" - checksum: 10c0/4ba5c00c506e6c786b4d6262cfbce90ddc14c10d4667e5c83ae993c9de88aa856033994dd2b35b83e8dc1170e224e66a319fa80adc4c32adcd2379bbc75da814 - languageName: node - linkType: hard - -"eventemitter3@npm:^5.0.4": +"eventemitter3@npm:^5.0.1, eventemitter3@npm:^5.0.4": version: 5.0.4 resolution: "eventemitter3@npm:5.0.4" checksum: 10c0/575b8cac8d709e1473da46f8f15ef311b57ff7609445a7c71af5cd42598583eee6f098fa7a593e30f27e94b8865642baa0689e8fa97c016f742abdb3b1bf6d9a languageName: node linkType: hard +"events-universal@npm:^1.0.0": + version: 1.0.1 + resolution: "events-universal@npm:1.0.1" + dependencies: + bare-events: "npm:^2.7.0" + checksum: 10c0/a1d9a5e9f95843650f8ec240dd1221454c110189a9813f32cdf7185759b43f1f964367ac7dca4ebc69150b59043f2d77c7e122b0d03abf7c25477ea5494785a5 + languageName: node + linkType: hard + "events@npm:^3.2.0": version: 3.3.0 resolution: "events@npm:3.3.0" @@ -10997,9 +10472,9 @@ __metadata: linkType: hard "eventsource-parser@npm:^3.0.0, eventsource-parser@npm:^3.0.1": - version: 3.0.6 - resolution: "eventsource-parser@npm:3.0.6" - checksum: 10c0/70b8ccec7dac767ef2eca43f355e0979e70415701691382a042a2df8d6a68da6c2fca35363669821f3da876d29c02abe9b232964637c1b6635c940df05ada78a + version: 3.1.0 + resolution: "eventsource-parser@npm:3.1.0" + checksum: 10c0/5ab4c6c9a2a042be0b387b6d03810eb580bac4ce90e299ede56458125a97ffe3af8145b2740089fc898a96cfa5aae792ee79f2a06257fba2776b0e7bce037071 languageName: node linkType: hard @@ -11084,7 +10559,7 @@ __metadata: languageName: node linkType: hard -"expect@npm:30.4.1": +"expect@npm:30.4.1, expect@npm:^30.0.0": version: 30.4.1 resolution: "expect@npm:30.4.1" dependencies: @@ -11098,20 +10573,6 @@ __metadata: languageName: node linkType: hard -"expect@npm:^30.0.0": - version: 30.2.0 - resolution: "expect@npm:30.2.0" - dependencies: - "@jest/expect-utils": "npm:30.2.0" - "@jest/get-type": "npm:30.1.0" - jest-matcher-utils: "npm:30.2.0" - jest-message-util: "npm:30.2.0" - jest-mock: "npm:30.2.0" - jest-util: "npm:30.2.0" - checksum: 10c0/fe440b3a036e2de1a3ede84bc6a699925328056e74324fbd2fdd9ce7b7358d03e515ac8db559c33828bcb0b7887b493dbaaece565e67d88748685850da5d9209 - languageName: node - linkType: hard - "exponential-backoff@npm:^3.1.1": version: 3.1.3 resolution: "exponential-backoff@npm:3.1.3" @@ -11120,23 +10581,23 @@ __metadata: linkType: hard "express-rate-limit@npm:^8.2.1": - version: 8.2.1 - resolution: "express-rate-limit@npm:8.2.1" + version: 8.5.2 + resolution: "express-rate-limit@npm:8.5.2" dependencies: - ip-address: "npm:10.0.1" + ip-address: "npm:^10.2.0" peerDependencies: express: ">= 4.11" - checksum: 10c0/54185f211c25655382436b8ad1a2136df0d5dc88f4d9d4438ca7cbc87cef0cd34cb01b8fc62d290445326aa6581470d2ff44502c3f1a34a5ed2c2ce56809fa01 + checksum: 10c0/c98c49b93e94627940cf5e7c2578718b94d77163357161c3343d148e46257136c988933a96d6e1e728a010683133a58f68cad46928b063cf8d99521c8772578d languageName: node linkType: hard "express@npm:^4.22.1": - version: 4.22.1 - resolution: "express@npm:4.22.1" + version: 4.22.2 + resolution: "express@npm:4.22.2" dependencies: accepts: "npm:~1.3.8" array-flatten: "npm:1.1.1" - body-parser: "npm:~1.20.3" + body-parser: "npm:~1.20.5" content-disposition: "npm:~0.5.4" content-type: "npm:~1.0.4" cookie: "npm:~0.7.1" @@ -11155,7 +10616,7 @@ __metadata: parseurl: "npm:~1.3.3" path-to-regexp: "npm:~0.1.12" proxy-addr: "npm:~2.0.7" - qs: "npm:~6.14.0" + qs: "npm:~6.15.1" range-parser: "npm:~1.2.1" safe-buffer: "npm:5.2.1" send: "npm:~0.19.0" @@ -11165,7 +10626,7 @@ __metadata: type-is: "npm:~1.6.18" utils-merge: "npm:1.0.1" vary: "npm:~1.1.2" - checksum: 10c0/ea57f512ab1e05e26b53a14fd432f65a10ec735ece342b37d0b63a7bcb8d337ffbb830ecb8ca15bcdfe423fbff88cea09786277baff200e8cde3ab40faa665cd + checksum: 10c0/d06dd4379fd217440b30f8abbe45f0e74931114c1395034f03e7d635196ecdab530d4835a1962a6aa34838d61967dc6f1f77846999bba3032373e9e714222c44 languageName: node linkType: hard @@ -11212,6 +10673,23 @@ __metadata: languageName: node linkType: hard +"extract-zip@npm:^2.0.1": + version: 2.0.1 + resolution: "extract-zip@npm:2.0.1" + dependencies: + "@types/yauzl": "npm:^2.9.1" + debug: "npm:^4.1.1" + get-stream: "npm:^5.1.0" + yauzl: "npm:^2.10.0" + dependenciesMeta: + "@types/yauzl": + optional: true + bin: + extract-zip: cli.js + checksum: 10c0/9afbd46854aa15a857ae0341a63a92743a7b89c8779102c3b4ffc207516b2019337353962309f85c66ee3d9092202a83cdc26dbf449a11981272038443974aee + languageName: node + linkType: hard + "extsprintf@npm:1.3.0": version: 1.3.0 resolution: "extsprintf@npm:1.3.0" @@ -11236,13 +10714,6 @@ __metadata: languageName: node linkType: hard -"fast-content-type-parse@npm:^3.0.0": - version: 3.0.0 - resolution: "fast-content-type-parse@npm:3.0.0" - checksum: 10c0/06251880c83b7118af3a5e66e8bcee60d44f48b39396fc60acc2b4630bd5f3e77552b999b5c8e943d45a818854360e5e97164c374ec4b562b4df96a2cdf2e188 - languageName: node - linkType: hard - "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" @@ -11250,7 +10721,14 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.3.2, fast-glob@npm:^3.3.3": +"fast-fifo@npm:^1.2.0, fast-fifo@npm:^1.3.2": + version: 1.3.2 + resolution: "fast-fifo@npm:1.3.2" + checksum: 10c0/d53f6f786875e8b0529f784b59b4b05d4b5c31c651710496440006a398389a579c8dbcd2081311478b5bf77f4b0b21de69109c5a4eabea9d8e8783d1eb864e4c + languageName: node + linkType: hard + +"fast-glob@npm:^3.3.3": version: 3.3.3 resolution: "fast-glob@npm:3.3.3" dependencies: @@ -11294,27 +10772,27 @@ __metadata: linkType: hard "fast-uri@npm:^3.0.1": - version: 3.1.0 - resolution: "fast-uri@npm:3.1.0" - checksum: 10c0/44364adca566f70f40d1e9b772c923138d47efeac2ae9732a872baafd77061f26b097ba2f68f0892885ad177becd065520412b8ffeec34b16c99433c5b9e2de7 + version: 3.1.2 + resolution: "fast-uri@npm:3.1.2" + checksum: 10c0/5b35641895959f3f7ab7a7b1b5542bded159346f25ec9f256817b206d50b64eda5828e90d605a2e2fc645c90519a7259c2bab2c942ee728c88b88e5be21b090d languageName: node linkType: hard "fast-wrap-ansi@npm:^0.2.0": - version: 0.2.0 - resolution: "fast-wrap-ansi@npm:0.2.0" + version: 0.2.2 + resolution: "fast-wrap-ansi@npm:0.2.2" dependencies: fast-string-width: "npm:^3.0.2" - checksum: 10c0/c0eb6debee565c5dbb9132dddff5c4d4aba5eb02185ae4dab285acd6186018cffca04264e92f373cbf592a9bcd1c33d65dba036030a8f3baeff1169969a1b59b + checksum: 10c0/1aa7be4f7cb86f4bdb14691cb6bcc0b8df8b3b89df142ade3ae1602332dcf6f990cd750a923cd581ca0847808cb4ec1aa5afaafa7a72f849e87a2a62c98fa370 languageName: node linkType: hard "fastq@npm:^1.6.0": - version: 1.19.1 - resolution: "fastq@npm:1.19.1" + version: 1.20.1 + resolution: "fastq@npm:1.20.1" dependencies: reusify: "npm:^1.0.4" - checksum: 10c0/ebc6e50ac7048daaeb8e64522a1ea7a26e92b3cee5cd1c7f2316cdca81ba543aa40a136b53891446ea5c3a67ec215fbaca87ad405f102dd97012f62916905630 + checksum: 10c0/e5dd725884decb1f11e5c822221d76136f239d0236f176fab80b7b8f9e7619ae57e6b4e5b73defc21e6b9ef99437ee7b545cff8e6c2c337819633712fa9d352e languageName: node linkType: hard @@ -11345,6 +10823,15 @@ __metadata: languageName: node linkType: hard +"fd-slicer@npm:~1.1.0": + version: 1.1.0 + resolution: "fd-slicer@npm:1.1.0" + dependencies: + pend: "npm:~1.2.0" + checksum: 10c0/304dd70270298e3ffe3bcc05e6f7ade2511acc278bc52d025f8918b48b6aa3b77f10361bddfadfe2a28163f7af7adbdce96f4d22c31b2f648ba2901f0c5fc20e + languageName: node + linkType: hard + "fdir@npm:^6.5.0": version: 6.5.0 resolution: "fdir@npm:6.5.0" @@ -11391,8 +10878,8 @@ __metadata: linkType: hard "finalhandler@npm:^2.1.0": - version: 2.1.0 - resolution: "finalhandler@npm:2.1.0" + version: 2.1.1 + resolution: "finalhandler@npm:2.1.1" dependencies: debug: "npm:^4.4.0" encodeurl: "npm:^2.0.0" @@ -11400,7 +10887,7 @@ __metadata: on-finished: "npm:^2.4.1" parseurl: "npm:^1.3.3" statuses: "npm:^2.0.1" - checksum: 10c0/da0bbca6d03873472ee890564eb2183f4ed377f25f3628a0fc9d16dac40bed7b150a0d82ebb77356e4c6d97d2796ad2dba22948b951dddee2c8768b0d1b9fb1f + checksum: 10c0/6bd664e21b7b2e79efcaace7d1a427169f61cce048fae68eb56290e6934e676b78e55d89f5998c5508871345bc59a61f47002dc505dc7288be68cceac1b701e2 languageName: node linkType: hard @@ -11495,19 +10982,19 @@ __metadata: linkType: hard "flatted@npm:^3.2.7, flatted@npm:^3.2.9": - version: 3.3.3 - resolution: "flatted@npm:3.3.3" - checksum: 10c0/e957a1c6b0254aa15b8cce8533e24165abd98fadc98575db082b786b5da1b7d72062b81bfdcd1da2f4d46b6ed93bec2434e62333e9b4261d79ef2e75a10dd538 + version: 3.4.2 + resolution: "flatted@npm:3.4.2" + checksum: 10c0/a65b67aae7172d6cdf63691be7de6c5cd5adbdfdfe2e9da1a09b617c9512ed794037741ee53d93114276bff3f93cd3b0d97d54f9b316e1e4885dde6e9ffdf7ed languageName: node linkType: hard "follow-redirects@npm:^1.0.0": - version: 1.15.11 - resolution: "follow-redirects@npm:1.15.11" + version: 1.16.0 + resolution: "follow-redirects@npm:1.16.0" peerDependenciesMeta: debug: optional: true - checksum: 10c0/d301f430542520a54058d4aeeb453233c564aaccac835d29d15e050beb33f339ad67d9bddbce01739c5dc46a6716dbe3d9d0d5134b1ca203effa11a7ef092343 + checksum: 10c0/a1e2900163e6f1b4d1ed5c221b607f41decbab65534c63fe7e287e40a5d552a6496e7d9d7d976fa4ba77b4c51c11e5e9f683f10b43011ea11e442ff128d0e181 languageName: node linkType: hard @@ -11529,15 +11016,15 @@ __metadata: linkType: hard "form-data@npm:~4.0.4": - version: 4.0.4 - resolution: "form-data@npm:4.0.4" + version: 4.0.5 + resolution: "form-data@npm:4.0.5" dependencies: asynckit: "npm:^0.4.0" combined-stream: "npm:^1.0.8" es-set-tostringtag: "npm:^2.1.0" hasown: "npm:^2.0.2" mime-types: "npm:^2.1.12" - checksum: 10c0/373525a9a034b9d57073e55eab79e501a714ffac02e7a9b01be1c820780652b16e4101819785e1e18f8d98f0aee866cc654d660a435c378e16a72f2e7cac9695 + checksum: 10c0/dd6b767ee0bbd6d84039db12a0fa5a2028160ffbfaba1800695713b46ae974a5f6e08b3356c3195137f8530dcd9dfcb5d5ae1eeff53d0db1e5aad863b619ce3b languageName: node linkType: hard @@ -11632,23 +11119,23 @@ __metadata: resolution: "full-cycle-app@workspace:examples/custom-webpack/full-cycle-app" dependencies: "@angular-builders/custom-webpack": "workspace:*" - "@angular-devkit/build-angular": "npm:21.2.14" - "@angular-eslint/builder": "npm:21.4.0" - "@angular/animations": "npm:21.2.16" - "@angular/cli": "npm:21.2.14" - "@angular/common": "npm:21.2.16" - "@angular/compiler": "npm:21.2.16" - "@angular/compiler-cli": "npm:21.2.16" - "@angular/core": "npm:21.2.16" - "@angular/forms": "npm:21.2.16" - "@angular/language-service": "npm:21.2.16" - "@angular/platform-browser": "npm:21.2.16" - "@angular/platform-browser-dynamic": "npm:21.2.16" - "@angular/router": "npm:21.2.16" + "@angular-devkit/build-angular": "npm:22.0.0" + "@angular-eslint/builder": "npm:22.0.0" + "@angular/animations": "npm:22.0.0" + "@angular/cli": "npm:22.0.0" + "@angular/common": "npm:22.0.0" + "@angular/compiler": "npm:22.0.0" + "@angular/compiler-cli": "npm:22.0.0" + "@angular/core": "npm:22.0.0" + "@angular/forms": "npm:22.0.0" + "@angular/language-service": "npm:22.0.0" + "@angular/platform-browser": "npm:22.0.0" + "@angular/platform-browser-dynamic": "npm:22.0.0" + "@angular/router": "npm:22.0.0" "@eslint/js": "npm:10.0.1" "@types/jasmine": "npm:6.0.0" "@types/node": "npm:24.13.1" - angular-eslint: "npm:21.4.0" + angular-eslint: "npm:22.0.0" cypress: "npm:15.16.0" eslint: "npm:10.4.1" html-webpack-plugin: "npm:5.6.7" @@ -11660,10 +11147,9 @@ __metadata: karma-jasmine-html-reporter: "npm:2.2.0" puppeteer: "npm:25.1.0" rxjs: "npm:7.8.2" - ts-node: "npm:10.9.2" tslib: "npm:2.8.1" - typescript: "npm:5.9.3" - typescript-eslint: "npm:8.60.1" + typescript: "npm:6.0.3" + typescript-eslint: "npm:8.60.0" zone.js: "npm:0.16.2" languageName: unknown linkType: soft @@ -11703,14 +11189,7 @@ __metadata: languageName: node linkType: hard -"get-east-asian-width@npm:^1.0.0, get-east-asian-width@npm:^1.3.0, get-east-asian-width@npm:^1.3.1": - version: 1.4.0 - resolution: "get-east-asian-width@npm:1.4.0" - checksum: 10c0/4e481d418e5a32061c36fbb90d1b225a254cc5b2df5f0b25da215dcd335a3c111f0c2023ffda43140727a9cafb62dac41d022da82c08f31083ee89f714ee3b83 - languageName: node - linkType: hard - -"get-east-asian-width@npm:^1.5.0": +"get-east-asian-width@npm:^1.0.0, get-east-asian-width@npm:^1.3.1, get-east-asian-width@npm:^1.5.0": version: 1.6.0 resolution: "get-east-asian-width@npm:1.6.0" checksum: 10c0/7e72e9550fd49ca5b246f9af6bb2afc129c96412845ff6556b3274fd44817a381702ca17028efe9866b261a3d44254cbf21e6c90cf05b4b61675630af776d431 @@ -11764,7 +11243,7 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^5.0.0": +"get-stream@npm:^5.0.0, get-stream@npm:^5.1.0": version: 5.2.0 resolution: "get-stream@npm:5.2.0" dependencies: @@ -11780,6 +11259,26 @@ __metadata: languageName: node linkType: hard +"get-tsconfig@npm:^4.10.0": + version: 4.14.0 + resolution: "get-tsconfig@npm:4.14.0" + dependencies: + resolve-pkg-maps: "npm:^1.0.0" + checksum: 10c0/abc2b9275468eb589079a0b7a95eb5107c14fdd0ca6dda1bff116fe774ea1f79975421dcb22a0c86b4f820fcc69a7655dddf9b6d6a8a2c06fcb59e19794c0724 + languageName: node + linkType: hard + +"get-uri@npm:^6.0.1": + version: 6.0.5 + resolution: "get-uri@npm:6.0.5" + dependencies: + basic-ftp: "npm:^5.0.2" + data-uri-to-buffer: "npm:^6.0.2" + debug: "npm:^4.3.4" + checksum: 10c0/c7ff5d5d55de53d23ecce7c5108cc3ed0db1174db43c9aa15506d640283d36ee0956fd8ba1fc50b06a718466cc85794ae9d8860193f91318afe846e3e7010f3a + languageName: node + linkType: hard + "getpass@npm:^0.1.1": version: 0.1.7 resolution: "getpass@npm:0.1.7" @@ -11838,7 +11337,7 @@ __metadata: languageName: node linkType: hard -"glob-to-regex.js@npm:^1.0.1": +"glob-to-regex.js@npm:^1.0.0, glob-to-regex.js@npm:^1.0.1": version: 1.2.0 resolution: "glob-to-regex.js@npm:1.2.0" peerDependencies: @@ -11854,22 +11353,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2": - version: 10.4.5 - resolution: "glob@npm:10.4.5" - dependencies: - foreground-child: "npm:^3.1.0" - jackspeak: "npm:^3.1.2" - minimatch: "npm:^9.0.4" - minipass: "npm:^7.1.2" - package-json-from-dist: "npm:^1.0.0" - path-scurry: "npm:^1.11.1" - bin: - glob: dist/esm/bin.mjs - checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e - languageName: node - linkType: hard - "glob@npm:^10.5.0": version: 10.5.0 resolution: "glob@npm:10.5.0" @@ -11886,29 +11369,18 @@ __metadata: languageName: node linkType: hard -"glob@npm:^13.0.0": - version: 13.0.0 - resolution: "glob@npm:13.0.0" - dependencies: - minimatch: "npm:^10.1.1" - minipass: "npm:^7.1.2" - path-scurry: "npm:^2.0.0" - checksum: 10c0/8e2f5821f3f7c312dd102e23a15b80c79e0837a9872784293ba2e15ec73b3f3749a49a42a31bfcb4e52c84820a474e92331c2eebf18819d20308f5c33876630a - languageName: node - linkType: hard - -"glob@npm:^13.0.3": - version: 13.0.5 - resolution: "glob@npm:13.0.5" +"glob@npm:^13.0.0, glob@npm:^13.0.3": + version: 13.0.6 + resolution: "glob@npm:13.0.6" dependencies: - minimatch: "npm:^10.2.1" - minipass: "npm:^7.1.2" - path-scurry: "npm:^2.0.0" - checksum: 10c0/1388527676127f337877eaf3403d6c54d3fa5e5599e10c1532d73108435b4da66d8fff4b00eb5b306388090a180c6a92d70694df1c19171cf820e285fb1dfee5 + minimatch: "npm:^10.2.2" + minipass: "npm:^7.1.3" + path-scurry: "npm:^2.0.2" + checksum: 10c0/269c236f11a9b50357fe7a8c6aadac667e01deb5242b19c84975628f05f4438d8ee1354bb62c5d6c10f37fd59911b54d7799730633a2786660d8c69f1d18120a languageName: node linkType: hard -"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.7": +"glob@npm:^7.0.5, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.7": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -11955,8 +11427,8 @@ __metadata: linkType: hard "globby@npm:^16.1.0": - version: 16.1.0 - resolution: "globby@npm:16.1.0" + version: 16.2.0 + resolution: "globby@npm:16.2.0" dependencies: "@sindresorhus/merge-streams": "npm:^4.0.0" fast-glob: "npm:^3.3.3" @@ -11964,7 +11436,7 @@ __metadata: is-path-inside: "npm:^4.0.0" slash: "npm:^5.1.0" unicorn-magic: "npm:^0.4.0" - checksum: 10c0/45dd4dd8311401b37ed426ad7ea7a6e8fdda2518bb0d62fbf0a46c2e6b81bcbd2c8d4fbcbcf4c0600bba15c5a8f4621785d0177acbb1b545f02f6b49f2cdbe24 + checksum: 10c0/fc0675e01dc1da5095f30dccc46a3047fc38d45ca08c21c1aa871bd79d38682f507d84a159be168019db5fffaa09c5663c3679c29190a2d4f999dc91d7ff6406 languageName: node linkType: hard @@ -11990,9 +11462,9 @@ __metadata: linkType: hard "graphmatch@npm:^1.1.0": - version: 1.1.0 - resolution: "graphmatch@npm:1.1.0" - checksum: 10c0/4536c1fae054d205b3ae8038cd9dac08c3251443a6eca65cf8221dada78b9f370a1ac6476502483d9149e0dbb01141ee5c41d7b6604b15e0c76c123a78e5b294 + version: 1.1.1 + resolution: "graphmatch@npm:1.1.1" + checksum: 10c0/98570352e8e62f5e18e397fb9a1ca90a31f18c46240529d5f9ee0020efa3642857337643ae731bd2667957821956dc315badc98243db284d7e5c76aedcf49b4d languageName: node linkType: hard @@ -12012,25 +11484,7 @@ __metadata: languageName: node linkType: hard -"handlebars@npm:^4.7.7, handlebars@npm:^4.7.8": - version: 4.7.8 - resolution: "handlebars@npm:4.7.8" - dependencies: - minimist: "npm:^1.2.5" - neo-async: "npm:^2.6.2" - source-map: "npm:^0.6.1" - uglify-js: "npm:^3.1.4" - wordwrap: "npm:^1.0.0" - dependenciesMeta: - uglify-js: - optional: true - bin: - handlebars: bin/handlebars - checksum: 10c0/7aff423ea38a14bb379316f3857fe0df3c5d66119270944247f155ba1f08e07a92b340c58edaa00cfe985c21508870ee5183e0634dcb53dd405f35c93ef7f10d - languageName: node - linkType: hard - -"handlebars@npm:^4.7.9": +"handlebars@npm:^4.7.7, handlebars@npm:^4.7.9": version: 4.7.9 resolution: "handlebars@npm:4.7.9" dependencies: @@ -12104,12 +11558,12 @@ __metadata: languageName: node linkType: hard -"hasown@npm:^2.0.2": - version: 2.0.2 - resolution: "hasown@npm:2.0.2" +"hasown@npm:^2.0.2, hasown@npm:^2.0.3": + version: 2.0.4 + resolution: "hasown@npm:2.0.4" dependencies: function-bind: "npm:^1.1.2" - checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 + checksum: 10c0/2d8de939e270b70618f8cebb69746620db10617dbb495bc66ddad326955ea24d3ca4af133aff3eb7c1853e0218f867bc2b050ec26fe02e3aea58f880ffc5e506 languageName: node linkType: hard @@ -12123,9 +11577,9 @@ __metadata: linkType: hard "hono@npm:^4.11.4": - version: 4.11.7 - resolution: "hono@npm:4.11.7" - checksum: 10c0/c7cde1779c9352fc6aacb242af009f280f4d89315cf95135d08df5c680f845fcfb1c3c1a650ec15e1d1c2d0af26fdc87b745bb3c471c5045d88c247a7bd2aae4 + version: 4.12.24 + resolution: "hono@npm:4.12.24" + checksum: 10c0/1a1394e48618c34b0ea627d7de7e5d59f1d90aedcd518f9d19b987260bbf16c362043e417bbb64290110c3cd54ef51017f7786438a0c2d811af01566d6ca3e94 languageName: node linkType: hard @@ -12139,11 +11593,11 @@ __metadata: linkType: hard "hosted-git-info@npm:^9.0.0": - version: 9.0.2 - resolution: "hosted-git-info@npm:9.0.2" + version: 9.0.3 + resolution: "hosted-git-info@npm:9.0.3" dependencies: lru-cache: "npm:^11.1.0" - checksum: 10c0/6c616339b61a103e3de4fef2776bc2b797767c3ed58fc2e3bb2e3b49294740c8c5ec3dde2d6440b09729e5a1d661dab6bacf54fdec46d1c466407a8df045d7a1 + checksum: 10c0/8f216ccb461ca54ae1846745325ced6a880b53101a58c820b813f067caa301576bf974f787df5688b7f0f1b752cdfcbaa2979751d1fcfd604032cc57bc538607 languageName: node linkType: hard @@ -12223,14 +11677,14 @@ __metadata: linkType: hard "htmlparser2@npm:^10.0.0": - version: 10.0.0 - resolution: "htmlparser2@npm:10.0.0" + version: 10.1.0 + resolution: "htmlparser2@npm:10.1.0" dependencies: domelementtype: "npm:^2.3.0" domhandler: "npm:^5.0.3" - domutils: "npm:^3.2.1" - entities: "npm:^6.0.0" - checksum: 10c0/47cfa37e529c86a7ba9a1e0e6f951ad26ef8ca5af898ab6e8916fa02c0264c1453b4a65f28b7b8a7f9d0d29b5a70abead8203bf8b3f07bc69407e85e7d9a68e4 + domutils: "npm:^3.2.2" + entities: "npm:^7.0.1" + checksum: 10c0/36394e29b80cfcc5e78e0fa4d3aa21fdaac3e6778d23e5c933e625c290987cd9a724a2eb0753ab60ed0c69dfaba0ab115f0ee50fb112fd8f0c4d522e7e0089a2 languageName: node linkType: hard @@ -12260,32 +11714,7 @@ __metadata: languageName: node linkType: hard -"http-errors@npm:2.0.0, http-errors@npm:^2.0.0": - version: 2.0.0 - resolution: "http-errors@npm:2.0.0" - dependencies: - depd: "npm:2.0.0" - inherits: "npm:2.0.4" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - toidentifier: "npm:1.0.1" - checksum: 10c0/fc6f2715fe188d091274b5ffc8b3657bd85c63e969daa68ccb77afb05b071a4b62841acb7a21e417b5539014dff2ebf9550f0b14a9ff126f2734a7c1387f8e19 - languageName: node - linkType: hard - -"http-errors@npm:~1.6.2": - version: 1.6.3 - resolution: "http-errors@npm:1.6.3" - dependencies: - depd: "npm:~1.1.2" - inherits: "npm:2.0.3" - setprototypeof: "npm:1.1.0" - statuses: "npm:>= 1.4.0 < 2" - checksum: 10c0/17ec4046ee974477778bfdd525936c254b872054703ec2caa4d6f099566b8adade636ae6aeeacb39302c5cd6e28fb407ebd937f500f5010d0b6850750414ff78 - languageName: node - linkType: hard - -"http-errors@npm:~2.0.0, http-errors@npm:~2.0.1": +"http-errors@npm:^2.0.0, http-errors@npm:^2.0.1, http-errors@npm:~2.0.0, http-errors@npm:~2.0.1": version: 2.0.1 resolution: "http-errors@npm:2.0.1" dependencies: @@ -12298,6 +11727,19 @@ __metadata: languageName: node linkType: hard +"http-errors@npm:~1.8.0": + version: 1.8.1 + resolution: "http-errors@npm:1.8.1" + dependencies: + depd: "npm:~1.1.2" + inherits: "npm:2.0.4" + setprototypeof: "npm:1.2.0" + statuses: "npm:>= 1.5.0 < 2" + toidentifier: "npm:1.0.1" + checksum: 10c0/f01aeecd76260a6fe7f08e192fcbe9b2f39ed20fc717b852669a69930167053b01790998275c6297d44f435cf0e30edd50c05223d1bec9bc484e6cf35b2d6f43 + languageName: node + linkType: hard + "http-parser-js@npm:>=0.5.1": version: 0.5.10 resolution: "http-parser-js@npm:0.5.10" @@ -12305,7 +11747,7 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2": +"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.1, http-proxy-agent@npm:^7.0.2": version: 7.0.2 resolution: "http-proxy-agent@npm:7.0.2" dependencies: @@ -12369,7 +11811,17 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:7.0.6, https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.6": +"https-proxy-agent@npm:9.0.0": + version: 9.0.0 + resolution: "https-proxy-agent@npm:9.0.0" + dependencies: + agent-base: "npm:9.0.0" + debug: "npm:^4.3.4" + checksum: 10c0/1b55f3f79d60d5254f57afd888820e751cc28d39f4e19fd9fa098efa01ae74afcab315f02c6b067d9723fd49a0baf5eed1cde0a40a6a5bb397e3804cc81ac402 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.6": version: 7.0.6 resolution: "https-proxy-agent@npm:7.0.6" dependencies: @@ -12409,15 +11861,6 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.4.24, iconv-lite@npm:~0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3" - checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4 - languageName: node - linkType: hard - "iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" @@ -12427,21 +11870,21 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.7.0, iconv-lite@npm:^0.7.0": - version: 0.7.0 - resolution: "iconv-lite@npm:0.7.0" +"iconv-lite@npm:^0.7.0, iconv-lite@npm:^0.7.2, iconv-lite@npm:~0.7.0": + version: 0.7.2 + resolution: "iconv-lite@npm:0.7.2" dependencies: safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 10c0/2382400469071c55b6746c531eed5fa4d033e5db6690b7331fb2a5f59a30d7a9782932e92253db26df33c1cf46fa200a3fbe524a2a7c62037c762283f188ec2f + checksum: 10c0/3c228920f3bd307f56bf8363706a776f4a060eb042f131cd23855ceca962951b264d0997ab38a1ad340e1c5df8499ed26e1f4f0db6b2a2ad9befaff22f14b722 languageName: node linkType: hard -"iconv-lite@npm:~0.7.0": - version: 0.7.2 - resolution: "iconv-lite@npm:0.7.2" +"iconv-lite@npm:~0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" dependencies: - safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 10c0/3c228920f3bd307f56bf8363706a776f4a060eb042f131cd23855ceca962951b264d0997ab38a1ad340e1c5df8499ed26e1f4f0db6b2a2ad9befaff22f14b722 + safer-buffer: "npm:>= 2.1.2 < 3" + checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4 languageName: node linkType: hard @@ -12493,10 +11936,10 @@ __metadata: languageName: node linkType: hard -"immutable@npm:^5.0.2": - version: 5.1.4 - resolution: "immutable@npm:5.1.4" - checksum: 10c0/f1c98382e4cde14a0b218be3b9b2f8441888da8df3b8c064aa756071da55fbed6ad696e5959982508456332419be9fdeaf29b2e58d0eadc45483cc16963c0446 +"immutable@npm:^5.1.5": + version: 5.1.6 + resolution: "immutable@npm:5.1.6" + checksum: 10c0/79eb033f68ca70fca60fb052c87b5420034e460e306ce9bea2558fd7b5e0b3b59c28c4a4653867305992b4a30e169b353175d78126c1be6ed0113794b27e3317 languageName: node linkType: hard @@ -12539,20 +11982,13 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.3, inherits@npm:~2.0.4": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 languageName: node linkType: hard -"inherits@npm:2.0.3": - version: 2.0.3 - resolution: "inherits@npm:2.0.3" - checksum: 10c0/6e56402373149ea076a434072671f9982f5fad030c7662be0332122fe6c0fa490acb3cc1010d90b6eff8d640b1167d77674add52dfd1bb85d545cf29e80e73e7 - languageName: node - linkType: hard - "ini@npm:2.0.0": version: 2.0.0 resolution: "ini@npm:2.0.0" @@ -12583,17 +12019,10 @@ __metadata: languageName: node linkType: hard -"ip-address@npm:10.0.1": - version: 10.0.1 - resolution: "ip-address@npm:10.0.1" - checksum: 10c0/1634d79dae18394004775cb6d699dc46b7c23df6d2083164025a2b15240c1164fccde53d0e08bd5ee4fc53913d033ab6b5e395a809ad4b956a940c446e948843 - languageName: node - linkType: hard - -"ip-address@npm:^10.0.1": - version: 10.1.0 - resolution: "ip-address@npm:10.1.0" - checksum: 10c0/0103516cfa93f6433b3bd7333fa876eb21263912329bfa47010af5e16934eeeff86f3d2ae700a3744a137839ddfad62b900c7a445607884a49b5d1e32a3d7566 +"ip-address@npm:^10.1.1, ip-address@npm:^10.2.0": + version: 10.2.0 + resolution: "ip-address@npm:10.2.0" + checksum: 10c0/5a00aada6e922c9c69dfc800ed5d0fa3348675ebdeed0e1575f503f27ca385b5f534363c9af7ad1daf64c1f1409388cdd3cc2e9b9b0fe1c924a431378d55075a languageName: node linkType: hard @@ -12605,9 +12034,9 @@ __metadata: linkType: hard "ipaddr.js@npm:^2.1.0": - version: 2.2.0 - resolution: "ipaddr.js@npm:2.2.0" - checksum: 10c0/e4ee875dc1bd92ac9d27e06cfd87cdb63ca786ff9fd7718f1d4f7a8ef27db6e5d516128f52d2c560408cbb75796ac2f83ead669e73507c86282d45f84c5abbb6 + version: 2.4.0 + resolution: "ipaddr.js@npm:2.4.0" + checksum: 10c0/47c2f17677b40054ca50a09e1228cf818c0d02d4474c2e0e29232c6668b3c4d51a3cfc19d1e17897d7baf4d933b3111d6bdf5cfbe55ab184165469a75f2bf177 languageName: node linkType: hard @@ -12628,11 +12057,11 @@ __metadata: linkType: hard "is-core-module@npm:^2.16.1": - version: 2.16.1 - resolution: "is-core-module@npm:2.16.1" + version: 2.16.2 + resolution: "is-core-module@npm:2.16.2" dependencies: - hasown: "npm:^2.0.2" - checksum: 10c0/898443c14780a577e807618aaae2b6f745c8538eca5c7bc11388a3f2dc6de82b9902bcc7eb74f07be672b11bbe82dd6a6edded44a00cb3d8f933d0459905eedd + hasown: "npm:^2.0.3" + checksum: 10c0/14b4258390283709c15476d023ec173e27458d5d014ccdb8ed39d576e551c3fa45498b7c9fe178f1529c4cb2648ddd58852a6a62107a019f6e349529f277518a languageName: node linkType: hard @@ -12736,9 +12165,9 @@ __metadata: linkType: hard "is-network-error@npm:^1.0.0": - version: 1.3.0 - resolution: "is-network-error@npm:1.3.0" - checksum: 10c0/3e85a69e957988db66d5af5412efdd531a5a63e150d1bdd5647cfd4dc54fd89b1dbdd472621f8915233c3176ba1e6922afa8a51a9e363ba4693edf96a294f898 + version: 1.3.2 + resolution: "is-network-error@npm:1.3.2" + checksum: 10c0/37edc576497b21d022754b49203358ee80fdac4a11a71a09687f38ad789ec437dd930c223301df39f1c920566692b31345e0108ae720996e592cab3879eca74f languageName: node linkType: hard @@ -12877,19 +12306,26 @@ __metadata: languageName: node linkType: hard -"is-what@npm:^3.14.1": - version: 3.14.1 - resolution: "is-what@npm:3.14.1" - checksum: 10c0/4b770b85454c877b6929a84fd47c318e1f8c2ff70fd72fd625bc3fde8e0c18a6e57345b6e7aa1ee9fbd1c608d27cfe885df473036c5c2e40cd2187250804a2c7 +"is-what@npm:^4.1.8": + version: 4.1.16 + resolution: "is-what@npm:4.1.16" + checksum: 10c0/611f1947776826dcf85b57cfb7bd3b3ea6f4b94a9c2f551d4a53f653cf0cb9d1e6518846648256d46ee6c91d114b6d09d2ac8a07306f7430c5900f87466aae5b languageName: node linkType: hard "is-wsl@npm:^3.1.0": - version: 3.1.0 - resolution: "is-wsl@npm:3.1.0" + version: 3.1.1 + resolution: "is-wsl@npm:3.1.1" dependencies: is-inside-container: "npm:^1.0.0" - checksum: 10c0/d3317c11995690a32c362100225e22ba793678fe8732660c6de511ae71a0ff05b06980cf21f98a6bf40d7be0e9e9506f859abe00a1118287d63e53d0a3d06947 + checksum: 10c0/7e5023522bfb8f27de4de960b0d82c4a8146c0bddb186529a3616d78b5bbbfc19ef0c5fc60d0b3a3cc0bf95a415fbdedc18454310ea3049587c879b07ace5107 + languageName: node + linkType: hard + +"isarray@npm:0.0.1": + version: 0.0.1 + resolution: "isarray@npm:0.0.1" + checksum: 10c0/ed1e62da617f71fe348907c71743b5ed550448b455f8d269f89a7c7ddb8ae6e962de3dab6a74a237b06f5eb7f6ece7a45ada8ce96d87fe972926530f91ae3311 languageName: node linkType: hard @@ -12921,10 +12357,10 @@ __metadata: languageName: node linkType: hard -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 +"isexe@npm:^4.0.0": + version: 4.0.0 + resolution: "isexe@npm:4.0.0" + checksum: 10c0/5884815115bceac452877659a9c7726382531592f43dc29e5d48b7c4100661aed54018cb90bd36cb2eaeba521092570769167acbb95c18d39afdccbcca06c5ce languageName: node linkType: hard @@ -13188,18 +12624,6 @@ __metadata: languageName: node linkType: hard -"jest-diff@npm:30.2.0": - version: 30.2.0 - resolution: "jest-diff@npm:30.2.0" - dependencies: - "@jest/diff-sequences": "npm:30.0.1" - "@jest/get-type": "npm:30.1.0" - chalk: "npm:^4.1.2" - pretty-format: "npm:30.2.0" - checksum: 10c0/5fac2cd89a10b282c5a68fc6206a95dfff9955ed0b758d24ffb0edcb20fb2f98e1fa5045c5c4205d952712ea864c6a086654f80cdd500cce054a2f5daf5b4419 - languageName: node - linkType: hard - "jest-diff@npm:30.4.1": version: 30.4.1 resolution: "jest-diff@npm:30.4.1" @@ -13309,18 +12733,6 @@ __metadata: languageName: node linkType: hard -"jest-matcher-utils@npm:30.2.0": - version: 30.2.0 - resolution: "jest-matcher-utils@npm:30.2.0" - dependencies: - "@jest/get-type": "npm:30.1.0" - chalk: "npm:^4.1.2" - jest-diff: "npm:30.2.0" - pretty-format: "npm:30.2.0" - checksum: 10c0/f221c8afa04cee693a2be735482c5db4ec6f845f8ca3a04cb419be34c6257f4531dab89c836251f31d1859318c38997e8e9f34bf7b4cdcc8c7be8ae6e2ecb9f2 - languageName: node - linkType: hard - "jest-matcher-utils@npm:30.4.1": version: 30.4.1 resolution: "jest-matcher-utils@npm:30.4.1" @@ -13333,23 +12745,6 @@ __metadata: languageName: node linkType: hard -"jest-message-util@npm:30.2.0": - version: 30.2.0 - resolution: "jest-message-util@npm:30.2.0" - dependencies: - "@babel/code-frame": "npm:^7.27.1" - "@jest/types": "npm:30.2.0" - "@types/stack-utils": "npm:^2.0.3" - chalk: "npm:^4.1.2" - graceful-fs: "npm:^4.2.11" - micromatch: "npm:^4.0.8" - pretty-format: "npm:30.2.0" - slash: "npm:^3.0.0" - stack-utils: "npm:^2.0.6" - checksum: 10c0/9c4aae95f9e73a754e5ecababa06e5c00cf549ff1651bbbf9aadc671ee57e688b01606ef0e9932d9dfe3d4b8f4511b6e8d01e131a49d2f82761c820ab93ae519 - languageName: node - linkType: hard - "jest-message-util@npm:30.4.1": version: 30.4.1 resolution: "jest-message-util@npm:30.4.1" @@ -13368,17 +12763,6 @@ __metadata: languageName: node linkType: hard -"jest-mock@npm:30.2.0": - version: 30.2.0 - resolution: "jest-mock@npm:30.2.0" - dependencies: - "@jest/types": "npm:30.2.0" - "@types/node": "npm:*" - jest-util: "npm:30.2.0" - checksum: 10c0/dfc8eb87f4075242f1b31d9dcac606f945c4f6a245d2bb67273738d266bea6345e10de3afa675076d545361bc96b754f764cffb0ccc2e99767484bece981b2f8 - languageName: node - linkType: hard - "jest-mock@npm:30.4.1": version: 30.4.1 resolution: "jest-mock@npm:30.4.1" @@ -13403,8 +12787,8 @@ __metadata: linkType: hard "jest-preset-angular@npm:^16.0.0": - version: 16.0.0 - resolution: "jest-preset-angular@npm:16.0.0" + version: 16.1.5 + resolution: "jest-preset-angular@npm:16.1.5" dependencies: "@jest/environment-jsdom-abstract": "npm:^30.0.0" bs-logger: "npm:^0.2.6" @@ -13424,14 +12808,7 @@ __metadata: dependenciesMeta: esbuild: optional: true - checksum: 10c0/70080afa64ecc1379edfc449ac169cc61c5a6196edd1844243aa7eb7379c9c559993e5ab7895c9cd99c7685aa44c9268c5d883f9af819cacc33607f40fd1b00b - languageName: node - linkType: hard - -"jest-regex-util@npm:30.0.1": - version: 30.0.1 - resolution: "jest-regex-util@npm:30.0.1" - checksum: 10c0/f30c70524ebde2d1012afe5ffa5691d5d00f7d5ba9e43d588f6460ac6fe96f9e620f2f9b36a02d0d3e7e77bc8efb8b3450ae3b80ac53c8be5099e01bf54f6728 + checksum: 10c0/b1b20d6fd7513bb9bf664065eee41aed7e2f2ab8c52e3fceca46e1f5de6bc19a9e8fcc923a8f43530bd9740e2e462330a754ad165ececfc341009d7f38f5c910 languageName: node linkType: hard @@ -13557,21 +12934,7 @@ __metadata: languageName: node linkType: hard -"jest-util@npm:30.2.0, jest-util@npm:^30.0.0": - version: 30.2.0 - resolution: "jest-util@npm:30.2.0" - dependencies: - "@jest/types": "npm:30.2.0" - "@types/node": "npm:*" - chalk: "npm:^4.1.2" - ci-info: "npm:^4.2.0" - graceful-fs: "npm:^4.2.11" - picomatch: "npm:^4.0.2" - checksum: 10c0/896d663554b35258a87ec1a0a0fdd8741fdf4f3239d09fc52fdd88fa5c411a5ece7903bbbbd7d5194743fcb69f62afc3287e90f57736a91e7df95ad421937936 - languageName: node - linkType: hard - -"jest-util@npm:30.4.1": +"jest-util@npm:30.4.1, jest-util@npm:^30.0.0": version: 30.4.1 resolution: "jest-util@npm:30.4.1" dependencies: @@ -13658,7 +13021,7 @@ __metadata: languageName: node linkType: hard -"jiti@npm:^2.5.1, jiti@npm:^2.6.1": +"jiti@npm:2.6.1": version: 2.6.1 resolution: "jiti@npm:2.6.1" bin: @@ -13667,10 +13030,19 @@ __metadata: languageName: node linkType: hard +"jiti@npm:^2.5.1, jiti@npm:^2.7.0": + version: 2.7.0 + resolution: "jiti@npm:2.7.0" + bin: + jiti: lib/jiti-cli.mjs + checksum: 10c0/1b1e2310a490dce1aeea3da5f5dfe18273516c20ce48be2e98eb8ea452d5f3dcc8fd0cfd6d28b4052a24c5dbab6e3089b2d7e79f0bce7915b10d750929563c42 + languageName: node + linkType: hard + "jose@npm:^6.1.3": - version: 6.1.3 - resolution: "jose@npm:6.1.3" - checksum: 10c0/b9577b4a7a5e84131011c23823db9f5951eae3ba796771a6a2401ae5dd50daf71104febc8ded9c38146aa5ebe94a92ac09c725e699e613ef26949b9f5a8bc30f + version: 6.2.3 + resolution: "jose@npm:6.2.3" + checksum: 10c0/aa91bccba22cc84d86308f833749bcb0b00441e35c24e0ac79abeac5f76dc62d47bdef9c1da6a0c609f5da6478595f52b252085888b89dbdb163861e40ea4188 languageName: node linkType: hard @@ -13689,25 +13061,25 @@ __metadata: linkType: hard "js-yaml@npm:^3.13.1": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" + version: 3.14.2 + resolution: "js-yaml@npm:3.14.2" dependencies: argparse: "npm:^1.0.7" esprima: "npm:^4.0.0" bin: js-yaml: bin/js-yaml.js - checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b + checksum: 10c0/3261f25912f5dd76605e5993d0a126c2b6c346311885d3c483706cd722efe34f697ea0331f654ce27c00a42b426e524518ec89d65ed02ea47df8ad26dcc8ce69 languageName: node linkType: hard "js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" + version: 4.2.0 + resolution: "js-yaml@npm:4.2.0" dependencies: argparse: "npm:^2.0.1" bin: js-yaml: bin/js-yaml.js - checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f + checksum: 10c0/1916456c118746603b067d74bbcbb0445d9a1d5e474ad4ae775e7b20525bed902e01d9d97dd0c81fcd8d4f596162309d0eb057f4aa38f3e9647f14075e9dea45 languageName: node linkType: hard @@ -13801,7 +13173,7 @@ __metadata: languageName: node linkType: hard -"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": +"json-parse-even-better-errors@npm:^2.3.0": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 @@ -13877,7 +13249,14 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.1.2, json5@npm:^2.2.2, json5@npm:^2.2.3": +"json-with-bigint@npm:^3.5.3": + version: 3.5.8 + resolution: "json-with-bigint@npm:3.5.8" + checksum: 10c0/a0c4e37626d74a9a493539f9f9a94855933fa15ea2f028859a787229a42c5f11803db6f94f1ce7b1d89756c1e80a7c1f11006bac266ec7ce819b75701765ca0a + languageName: node + linkType: hard + +"json5@npm:^2.1.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -13906,15 +13285,15 @@ __metadata: linkType: hard "jsonfile@npm:^6.0.1": - version: 6.2.0 - resolution: "jsonfile@npm:6.2.0" + version: 6.2.1 + resolution: "jsonfile@npm:6.2.1" dependencies: graceful-fs: "npm:^4.1.6" universalify: "npm:^2.0.0" dependenciesMeta: graceful-fs: optional: true - checksum: 10c0/7f4f43b08d1869ded8a6822213d13ae3b99d651151d77efd1557ced0889c466296a7d9684e397bd126acf5eb2cfcb605808c3e681d0fdccd2fe5a04b47e76c0d + checksum: 10c0/e1abf000ecee9942d4d028a8e02dc752617face227d72afd1cfb2187e2433079e625bf82b807a313689db71b6472c6b2b389a2340d2798737b1199a39631c28a languageName: node linkType: hard @@ -14083,12 +13462,12 @@ __metadata: linkType: hard "launch-editor@npm:^2.6.1": - version: 2.12.0 - resolution: "launch-editor@npm:2.12.0" + version: 2.14.1 + resolution: "launch-editor@npm:2.14.1" dependencies: picocolors: "npm:^1.1.1" - shell-quote: "npm:^1.8.3" - checksum: 10c0/fac5e7ad90bf185594cad4c831a52419eef50e667c4eddb5b0a58eb5f944e16d947636ee767b9896ffd46a51db34925edd3b854c48efb47f6d767ffd7d904e71 + shell-quote: "npm:^1.8.4" + checksum: 10c0/bb0ab182086afaf1c391abd38d6fc9d5391cb43d0c2da1d96176f79e9995635cdf34dcfd8df3f756bb82d7bbbb7d37014d5eb312f337350889c0cff92db53dab languageName: node linkType: hard @@ -14101,9 +13480,9 @@ __metadata: languageName: node linkType: hard -"less-loader@npm:12.3.1": - version: 12.3.1 - resolution: "less-loader@npm:12.3.1" +"less-loader@npm:12.3.2": + version: 12.3.2 + resolution: "less-loader@npm:12.3.2" peerDependencies: "@rspack/core": 0.x || ^1.0.0 || ^2.0.0-0 less: ^3.5.0 || ^4.0.0 @@ -14113,15 +13492,15 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/46287723e7c569bba7dcee697d8927a310d63822e67ed81c16f2216d7c00484b5c1e743f57927bb489d7dcd381b10cd0d2ce7f0501786567fb9f139800a53029 + checksum: 10c0/25083fc636a5bfeccb31faa4383db2a1a7b0f99a34bfe663fca8bdeece3eccfb9539776462910075a6eeb8f22594fa32aa9bb3320cce355f36284371715c053c languageName: node linkType: hard -"less@npm:4.4.2, less@npm:^4.2.0": - version: 4.4.2 - resolution: "less@npm:4.4.2" +"less@npm:4.6.4, less@npm:^4.2.0": + version: 4.6.4 + resolution: "less@npm:4.6.4" dependencies: - copy-anything: "npm:^2.0.1" + copy-anything: "npm:^3.0.5" errno: "npm:^0.1.1" graceful-fs: "npm:^4.1.2" image-size: "npm:~0.5.0" @@ -14130,7 +13509,6 @@ __metadata: needle: "npm:^3.1.0" parse-node-version: "npm:^1.0.1" source-map: "npm:~0.6.0" - tslib: "npm:^2.3.0" dependenciesMeta: errno: optional: true @@ -14148,7 +13526,7 @@ __metadata: optional: true bin: lessc: bin/lessc - checksum: 10c0/f8b796e45ef171adc390b5250f3018922cd046c256181dd9d4cbcbbdc5d6de7cb88c8327741c10eff7ff76421cd826fd95a664ea1b88fbf6f31742428d4a2dab + checksum: 10c0/34fc96e617f1c8b9bff019ffcab6304550d733fdb5daaa4a69dd404d83aa8566c21d8905bbb75f025334875188f38126edd4af10604e9ee634f43f6d41430837 languageName: node linkType: hard @@ -14371,7 +13749,20 @@ __metadata: languageName: node linkType: hard -"listr2@npm:9.0.5, listr2@npm:^9.0.5": +"listr2@npm:10.2.1, listr2@npm:^10.2.1": + version: 10.2.1 + resolution: "listr2@npm:10.2.1" + dependencies: + cli-truncate: "npm:^5.2.0" + eventemitter3: "npm:^5.0.4" + log-update: "npm:^6.1.0" + rfdc: "npm:^1.4.1" + wrap-ansi: "npm:^10.0.0" + checksum: 10c0/a381a7aaef2e8625e6e882835ef446d14306c8fa371b56c4499cf23ece86f84922008af11962bfba5411b51589e02d280bea2b820451a2efad89ebf78bbe68a4 + languageName: node + linkType: hard + +"listr2@npm:^9.0.5": version: 9.0.5 resolution: "listr2@npm:9.0.5" dependencies: @@ -14385,31 +13776,18 @@ __metadata: languageName: node linkType: hard -"listr2@npm:^10.2.1": - version: 10.2.1 - resolution: "listr2@npm:10.2.1" - dependencies: - cli-truncate: "npm:^5.2.0" - eventemitter3: "npm:^5.0.4" - log-update: "npm:^6.1.0" - rfdc: "npm:^1.4.1" - wrap-ansi: "npm:^10.0.0" - checksum: 10c0/a381a7aaef2e8625e6e882835ef446d14306c8fa371b56c4499cf23ece86f84922008af11962bfba5411b51589e02d280bea2b820451a2efad89ebf78bbe68a4 - languageName: node - linkType: hard - -"lmdb@npm:3.5.1": - version: 3.5.1 - resolution: "lmdb@npm:3.5.1" +"lmdb@npm:3.5.4": + version: 3.5.4 + resolution: "lmdb@npm:3.5.4" dependencies: "@harperfast/extended-iterable": "npm:^1.0.3" - "@lmdb/lmdb-darwin-arm64": "npm:3.5.1" - "@lmdb/lmdb-darwin-x64": "npm:3.5.1" - "@lmdb/lmdb-linux-arm": "npm:3.5.1" - "@lmdb/lmdb-linux-arm64": "npm:3.5.1" - "@lmdb/lmdb-linux-x64": "npm:3.5.1" - "@lmdb/lmdb-win32-arm64": "npm:3.5.1" - "@lmdb/lmdb-win32-x64": "npm:3.5.1" + "@lmdb/lmdb-darwin-arm64": "npm:3.5.4" + "@lmdb/lmdb-darwin-x64": "npm:3.5.4" + "@lmdb/lmdb-linux-arm": "npm:3.5.4" + "@lmdb/lmdb-linux-arm64": "npm:3.5.4" + "@lmdb/lmdb-linux-x64": "npm:3.5.4" + "@lmdb/lmdb-win32-arm64": "npm:3.5.4" + "@lmdb/lmdb-win32-x64": "npm:3.5.4" msgpackr: "npm:^1.11.2" node-addon-api: "npm:^6.1.0" node-gyp: "npm:latest" @@ -14433,14 +13811,14 @@ __metadata: optional: true bin: download-lmdb-prebuilds: bin/download-prebuilds.js - checksum: 10c0/1fd63b1fa981569ec79ea952886a5ac31773cca19d4d4d21f26297dda52c21ae67818cf2026af0adcc80efd675189afaf4c57e130308beaa1a4cfdb379b5c10a + checksum: 10c0/67bb93df70c656a59d49e1741a5b60b492adc102e70ac84170d26a4903bd4cedbd4f161d9aa2c5a0b1e730a9b7e7f434a3ae1fd4a0c2f78be32735ec30237902 languageName: node linkType: hard "loader-runner@npm:^4.3.1": - version: 4.3.1 - resolution: "loader-runner@npm:4.3.1" - checksum: 10c0/a523b6329f114e0a98317158e30a7dfce044b731521be5399464010472a93a15ece44757d1eaed1d8845019869c5390218bc1c7c3110f4eeaef5157394486eac + version: 4.3.2 + resolution: "loader-runner@npm:4.3.2" + checksum: 10c0/35297f2d1cadcef8995c4ba2c4e27ef397f508014c5cdcdae43456ed27d07d3bfc3e81a5460857184517a02576917363f5f8f98cb22500c124f00c33eb6ec7b1 languageName: node linkType: hard @@ -14587,24 +13965,10 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^11.0.0, lru-cache@npm:^11.2.1": - version: 11.2.4 - resolution: "lru-cache@npm:11.2.4" - checksum: 10c0/4a24f9b17537619f9144d7b8e42cd5a225efdfd7076ebe7b5e7dc02b860a818455201e67fbf000765233fe7e339d3c8229fc815e9b58ee6ede511e07608c19b2 - languageName: node - linkType: hard - -"lru-cache@npm:^11.1.0": - version: 11.2.2 - resolution: "lru-cache@npm:11.2.2" - checksum: 10c0/72d7831bbebc85e2bdefe01047ee5584db69d641c48d7a509e86f66f6ee111b30af7ec3bd68a967d47b69a4b1fa8bbf3872630bd06a63b6735e6f0a5f1c8e83d - languageName: node - linkType: hard - -"lru-cache@npm:^11.3.5": - version: 11.3.5 - resolution: "lru-cache@npm:11.3.5" - checksum: 10c0/5b54ef7b88afb4bd25b7a778f1b2b1cde32d9770913e530da34ab203cf0442413bcaa6e372800cbab9562557a4480e4d8bf32e3a368bb5a91b12218eca085c66 +"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1, lru-cache@npm:^11.3.5": + version: 11.5.1 + resolution: "lru-cache@npm:11.5.1" + checksum: 10c0/7b341cea79a8efe9c6a6f20c8757a77eca5b25d7ff983ccf4e11e547b81f6787824baa1c84705251dff84ab4ffac85717ac354b9d02e465f86a9f8b166409979 languageName: node linkType: hard @@ -14617,6 +13981,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^7.14.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: 10c0/b3a452b491433db885beed95041eb104c157ef7794b9c9b4d647be503be91769d11206bb573849a16b4cc0d03cbd15ffd22df7960997788b74c1d399ac7a4fed + languageName: node + linkType: hard + "magic-string@npm:0.30.21, magic-string@npm:^0.30.21": version: 0.30.21 resolution: "magic-string@npm:0.30.21" @@ -14654,37 +14025,20 @@ __metadata: languageName: node linkType: hard -"make-error@npm:^1.1.1, make-error@npm:^1.3.6": +"make-error@npm:^1.3.6": version: 1.3.6 resolution: "make-error@npm:1.3.6" checksum: 10c0/171e458d86854c6b3fc46610cfacf0b45149ba043782558c6875d9f42f222124384ad0b468c92e996d815a8a2003817a710c0a160e49c1c394626f76fa45396f languageName: node linkType: hard -"make-fetch-happen@npm:^14.0.3": - version: 14.0.3 - resolution: "make-fetch-happen@npm:14.0.3" - dependencies: - "@npmcli/agent": "npm:^3.0.0" - cacache: "npm:^19.0.1" - http-cache-semantics: "npm:^4.1.1" - minipass: "npm:^7.0.2" - minipass-fetch: "npm:^4.0.0" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^1.0.0" - proc-log: "npm:^5.0.0" - promise-retry: "npm:^2.0.1" - ssri: "npm:^12.0.0" - checksum: 10c0/c40efb5e5296e7feb8e37155bde8eb70bc57d731b1f7d90e35a092fde403d7697c56fb49334d92d330d6f1ca29a98142036d6480a12681133a0a1453164cb2f0 - languageName: node - linkType: hard - -"make-fetch-happen@npm:^15.0.0, make-fetch-happen@npm:^15.0.2": - version: 15.0.3 - resolution: "make-fetch-happen@npm:15.0.3" +"make-fetch-happen@npm:^15.0.0, make-fetch-happen@npm:^15.0.1, make-fetch-happen@npm:^15.0.4": + version: 15.0.6 + resolution: "make-fetch-happen@npm:15.0.6" dependencies: + "@gar/promise-retry": "npm:^1.0.0" "@npmcli/agent": "npm:^4.0.0" + "@npmcli/redact": "npm:^4.0.0" cacache: "npm:^20.0.1" http-cache-semantics: "npm:^4.1.1" minipass: "npm:^7.0.2" @@ -14693,9 +14047,8 @@ __metadata: minipass-pipeline: "npm:^1.2.4" negotiator: "npm:^1.0.0" proc-log: "npm:^6.0.0" - promise-retry: "npm:^2.0.1" ssri: "npm:^13.0.0" - checksum: 10c0/525f74915660be60b616bcbd267c4a5b59481b073ba125e45c9c3a041bb1a47a2bd0ae79d028eb6f5f95bf9851a4158423f5068539c3093621abb64027e8e461 + checksum: 10c0/2c5805dee83efd1cd1d3f57505120ae98f4a328be72d82447e24b8f72b8e5475910d7dbc49d7da1c5bd96a62bf8ef6ffda88ebadfdfbec7c715cfde2459c9295 languageName: node linkType: hard @@ -14724,13 +14077,6 @@ __metadata: languageName: node linkType: hard -"mdn-data@npm:2.12.2": - version: 2.12.2 - resolution: "mdn-data@npm:2.12.2" - checksum: 10c0/b22443b71d70f72ccc3c6ba1608035431a8fc18c3c8fc53523f06d20e05c2ac10f9b53092759a2ca85cf02f0d37036f310b581ce03e7b99ac74d388ef8152ade - languageName: node - linkType: hard - "mdn-data@npm:2.27.1": version: 2.27.1 resolution: "mdn-data@npm:2.27.1" @@ -14763,17 +14109,27 @@ __metadata: languageName: node linkType: hard -"memfs@npm:^4.43.1": - version: 4.50.0 - resolution: "memfs@npm:4.50.0" +"memfs@npm:^4.43.1, memfs@npm:^4.56.10": + version: 4.57.6 + resolution: "memfs@npm:4.57.6" dependencies: + "@jsonjoy.com/fs-core": "npm:4.57.6" + "@jsonjoy.com/fs-fsa": "npm:4.57.6" + "@jsonjoy.com/fs-node": "npm:4.57.6" + "@jsonjoy.com/fs-node-builtins": "npm:4.57.6" + "@jsonjoy.com/fs-node-to-fsa": "npm:4.57.6" + "@jsonjoy.com/fs-node-utils": "npm:4.57.6" + "@jsonjoy.com/fs-print": "npm:4.57.6" + "@jsonjoy.com/fs-snapshot": "npm:4.57.6" "@jsonjoy.com/json-pack": "npm:^1.11.0" "@jsonjoy.com/util": "npm:^1.9.0" glob-to-regex.js: "npm:^1.0.1" thingies: "npm:^2.5.0" tree-dump: "npm:^1.0.3" tslib: "npm:^2.0.0" - checksum: 10c0/304cf75c4ee51f72f6a37f3194c8900468ead3f71d017c777ac4e7543ae34e951cd8d3f4fa04f7ef0181f57ba9417b71e41b548f947ace5e30f65b7357d19935 + peerDependencies: + tslib: 2 + checksum: 10c0/b07c1e8578c4a6efa23af5a421befedc81e072bc7b472ab6d6ac38d5d07c4bf8f6bc5a99054536191aefccf37cafd9141b4d64ae0cbd806e85d4b029d8af40cf languageName: node linkType: hard @@ -14785,9 +14141,9 @@ __metadata: linkType: hard "meow@npm:^14.0.0": - version: 14.0.0 - resolution: "meow@npm:14.0.0" - checksum: 10c0/dbe4e136e0f858472d8b8c24d382054fe9898f6f47c58a42be25e6b1985e5ae31048573bf399f6e5877bf9d5b89cb840beae7350682019f998ff30baaa5e4106 + version: 14.1.0 + resolution: "meow@npm:14.1.0" + checksum: 10c0/f0ca4bb4fd08e4b9470fcbb7332deb61d72d40d4bda18ffb87c1a98e5014c0b44749ae9f0cab18fa532e26d61cef5d453831f9ae23ac09fa8ea0e0469be73ebc languageName: node linkType: hard @@ -14835,7 +14191,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.5, micromatch@npm:^4.0.8": +"micromatch@npm:^4.0.2, micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -14859,7 +14215,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34, mime-types@npm:~2.1.35": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -14868,12 +14224,12 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^3.0.0, mime-types@npm:^3.0.1": - version: 3.0.1 - resolution: "mime-types@npm:3.0.1" +"mime-types@npm:^3.0.0, mime-types@npm:^3.0.1, mime-types@npm:^3.0.2": + version: 3.0.2 + resolution: "mime-types@npm:3.0.2" dependencies: mime-db: "npm:^1.54.0" - checksum: 10c0/bd8c20d3694548089cf229016124f8f40e6a60bbb600161ae13e45f793a2d5bb40f96bbc61f275836696179c77c1d6bf4967b2a75e0a8ad40fe31f4ed5be4da5 + checksum: 10c0/35a0dd1035d14d185664f346efcdb72e93ef7a9b6e9ae808bd1f6358227010267fab52657b37562c80fc888ff76becb2b2938deb5e730818b7983bf8bd359767 languageName: node linkType: hard @@ -14909,15 +14265,15 @@ __metadata: languageName: node linkType: hard -"mini-css-extract-plugin@npm:2.10.0": - version: 2.10.0 - resolution: "mini-css-extract-plugin@npm:2.10.0" +"mini-css-extract-plugin@npm:2.10.2": + version: 2.10.2 + resolution: "mini-css-extract-plugin@npm:2.10.2" dependencies: schema-utils: "npm:^4.0.0" tapable: "npm:^2.2.1" peerDependencies: webpack: ^5.0.0 - checksum: 10c0/5fb0654471f4fb695629d96324d327d4d3a05069a95b83770d070e8f48a07d5b5f8da61adabdd56e3119cf6b17eef058c4ba6ab4cd31a7b2af48624621fe0520 + checksum: 10c0/ba58afb1c090be144b423a3621c4e0d09a9f8f4875410d3bc108915dfcf8e2fd6e550a7f3ba129eb07fd76599157650f86186b09f3ae2c34ccc5b50e82da0aa3 languageName: node linkType: hard @@ -14928,57 +14284,30 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^10.0.3, minimatch@npm:^10.1.1": - version: 10.1.1 - resolution: "minimatch@npm:10.1.1" - dependencies: - "@isaacs/brace-expansion": "npm:^5.0.0" - checksum: 10c0/c85d44821c71973d636091fddbfbffe62370f5ee3caf0241c5b60c18cd289e916200acb2361b7e987558cd06896d153e25d505db9fc1e43e6b4b6752e2702902 - languageName: node - linkType: hard - -"minimatch@npm:^10.2.1": - version: 10.2.1 - resolution: "minimatch@npm:10.2.1" - dependencies: - brace-expansion: "npm:^5.0.2" - checksum: 10c0/86c3ed013630e820fda00336ee786a03098723b60bfae452de6306708fc83619df40a99dc6ec59c97d14e25b3b3371669a04e5bf508b1b00339b20229c4907d2 - languageName: node - linkType: hard - -"minimatch@npm:^10.2.2": - version: 10.2.2 - resolution: "minimatch@npm:10.2.2" - dependencies: - brace-expansion: "npm:^5.0.2" - checksum: 10c0/098831f2f542cb802e1f249c809008a016e1fef6b3a9eda9cf9ecb2b3d7979083951bd47c0c82fcf34330bd3b36638a493d4fa8e24cce58caf5b481de0f4e238 - languageName: node - linkType: hard - -"minimatch@npm:^10.2.4": - version: 10.2.4 - resolution: "minimatch@npm:10.2.4" +"minimatch@npm:^10.0.3, minimatch@npm:^10.1.1, minimatch@npm:^10.2.2, minimatch@npm:^10.2.4": + version: 10.2.5 + resolution: "minimatch@npm:10.2.5" dependencies: - brace-expansion: "npm:^5.0.2" - checksum: 10c0/35f3dfb7b99b51efd46afd378486889f590e7efb10e0f6a10ba6800428cf65c9a8dedb74427d0570b318d749b543dc4e85f06d46d2858bc8cac7e1eb49a95945 + brace-expansion: "npm:^5.0.5" + checksum: 10c0/6bb058bd6324104b9ec2f763476a35386d05079c1f5fe4fbf1f324a25237cd4534d6813ecd71f48208f4e635c1221899bef94c3c89f7df55698fe373aaae20fd languageName: node linkType: hard -"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" +"minimatch@npm:^3.0.3, minimatch@npm:^3.0.4, minimatch@npm:^3.1.1": + version: 3.1.5 + resolution: "minimatch@npm:3.1.5" dependencies: brace-expansion: "npm:^1.1.7" - checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 + checksum: 10c0/2ecbdc0d33f07bddb0315a8b5afbcb761307a8778b48f0b312418ccbced99f104a2d17d8aca7573433c70e8ccd1c56823a441897a45e384ea76ef401a26ace70 languageName: node linkType: hard -"minimatch@npm:^9.0.4, minimatch@npm:^9.0.5": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" +"minimatch@npm:^9.0.4": + version: 9.0.9 + resolution: "minimatch@npm:9.0.9" dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed + brace-expansion: "npm:^2.0.2" + checksum: 10c0/0b6a58530dbb00361745aa6c8cffaba4c90f551afe7c734830bd95fd88ebf469dd7355a027824ea1d09e37181cfeb0a797fb17df60c15ac174303ac110eb7e86 languageName: node linkType: hard @@ -14998,42 +14327,27 @@ __metadata: languageName: node linkType: hard -"minipass-fetch@npm:^4.0.0": - version: 4.0.1 - resolution: "minipass-fetch@npm:4.0.1" - dependencies: - encoding: "npm:^0.1.13" - minipass: "npm:^7.0.3" - minipass-sized: "npm:^1.0.3" - minizlib: "npm:^3.0.1" - dependenciesMeta: - encoding: - optional: true - checksum: 10c0/a3147b2efe8e078c9bf9d024a0059339c5a09c5b1dded6900a219c218cc8b1b78510b62dae556b507304af226b18c3f1aeb1d48660283602d5b6586c399eed5c - languageName: node - linkType: hard - "minipass-fetch@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass-fetch@npm:5.0.0" + version: 5.0.2 + resolution: "minipass-fetch@npm:5.0.2" dependencies: - encoding: "npm:^0.1.13" + iconv-lite: "npm:^0.7.2" minipass: "npm:^7.0.3" - minipass-sized: "npm:^1.0.3" + minipass-sized: "npm:^2.0.0" minizlib: "npm:^3.0.1" dependenciesMeta: - encoding: + iconv-lite: optional: true - checksum: 10c0/9443aab5feab190972f84b64116e54e58dd87a58e62399cae0a4a7461b80568281039b7c3a38ba96453431ebc799d1e26999e548540156216729a4967cd5ef06 + checksum: 10c0/ce4ab9f21cfabaead2097d95dd33f485af8072fbc6b19611bce694965393453a1639d641c2bcf1c48f2ea7d41ea7fab8278373f1d0bee4e63b0a5b2cdd0ef649 languageName: node linkType: hard "minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" + version: 1.0.7 + resolution: "minipass-flush@npm:1.0.7" dependencies: minipass: "npm:^3.0.0" - checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd + checksum: 10c0/960915c02aa0991662c37c404517dd93708d17f96533b2ca8c1e776d158715d8107c5ced425ffc61674c167d93607f07f48a83c139ce1057f8781e5dfb4b90c2 languageName: node linkType: hard @@ -15046,12 +14360,12 @@ __metadata: languageName: node linkType: hard -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" +"minipass-sized@npm:^2.0.0": + version: 2.0.0 + resolution: "minipass-sized@npm:2.0.0" dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb + minipass: "npm:^7.1.2" + checksum: 10c0/f9201696a6f6d68610d04c9c83e3d2e5cb9c026aae1c8cbf7e17f386105cb79c1bb088dbc21bf0b1eb4f3fb5df384fd1e7aa3bf1f33868c416ae8c8a92679db8 languageName: node linkType: hard @@ -15064,10 +14378,10 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": - version: 7.1.2 - resolution: "minipass@npm:7.1.2" - checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2, minipass@npm:^7.1.3": + version: 7.1.3 + resolution: "minipass@npm:7.1.3" + checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb languageName: node linkType: hard @@ -15143,15 +14457,15 @@ __metadata: linkType: hard "msgpackr-extract@npm:^3.0.2": - version: 3.0.3 - resolution: "msgpackr-extract@npm:3.0.3" - dependencies: - "@msgpackr-extract/msgpackr-extract-darwin-arm64": "npm:3.0.3" - "@msgpackr-extract/msgpackr-extract-darwin-x64": "npm:3.0.3" - "@msgpackr-extract/msgpackr-extract-linux-arm": "npm:3.0.3" - "@msgpackr-extract/msgpackr-extract-linux-arm64": "npm:3.0.3" - "@msgpackr-extract/msgpackr-extract-linux-x64": "npm:3.0.3" - "@msgpackr-extract/msgpackr-extract-win32-x64": "npm:3.0.3" + version: 3.0.4 + resolution: "msgpackr-extract@npm:3.0.4" + dependencies: + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "npm:3.0.4" + "@msgpackr-extract/msgpackr-extract-darwin-x64": "npm:3.0.4" + "@msgpackr-extract/msgpackr-extract-linux-arm": "npm:3.0.4" + "@msgpackr-extract/msgpackr-extract-linux-arm64": "npm:3.0.4" + "@msgpackr-extract/msgpackr-extract-linux-x64": "npm:3.0.4" + "@msgpackr-extract/msgpackr-extract-win32-x64": "npm:3.0.4" node-gyp: "npm:latest" node-gyp-build-optional-packages: "npm:5.2.2" dependenciesMeta: @@ -15169,19 +14483,19 @@ __metadata: optional: true bin: download-msgpackr-prebuilds: bin/download-prebuilds.js - checksum: 10c0/e504fd8bf86a29d7527c83776530ee6dc92dcb0273bb3679fd4a85173efead7f0ee32fb82c8410a13c33ef32828c45f81118ffc0fbed5d6842e72299894623b4 + checksum: 10c0/582a9d17abbf3019e600e948736695056280ce401fd0235ee2474e95f9952208b9f6cce4d0e355b03b7d3c5630e6c3d11fe5fc27fdedb2311cce48de464338d8 languageName: node linkType: hard "msgpackr@npm:^1.11.2": - version: 1.11.5 - resolution: "msgpackr@npm:1.11.5" + version: 1.11.14 + resolution: "msgpackr@npm:1.11.14" dependencies: msgpackr-extract: "npm:^3.0.2" dependenciesMeta: msgpackr-extract: optional: true - checksum: 10c0/f35ffd218661e8afc52490cde3dbf2656304e7940563c5313aa2f45e31ac5bdce3b58f27e55b785c700085ee76f26fc7afbae25ae5abe05068a8f000fd0ac6cd + checksum: 10c0/02add651a14365cd09340a533ee35ad7e283e2e327c5014534ab6ceaaf65a98177294b852433fe6bab5e856ab4e287de60fc272df4c491c07d169698f86d0d48 languageName: node linkType: hard @@ -15202,45 +14516,37 @@ __metadata: resolution: "multiple-apps@workspace:examples/jest/multiple-apps" dependencies: "@angular-builders/jest": "workspace:*" - "@angular-devkit/build-angular": "npm:21.2.14" - "@angular-eslint/builder": "npm:21.4.0" - "@angular/animations": "npm:21.2.16" - "@angular/cli": "npm:21.2.14" - "@angular/common": "npm:21.2.16" - "@angular/compiler": "npm:21.2.16" - "@angular/compiler-cli": "npm:21.2.16" - "@angular/core": "npm:21.2.16" - "@angular/forms": "npm:21.2.16" - "@angular/language-service": "npm:21.2.16" - "@angular/platform-browser": "npm:21.2.16" - "@angular/platform-browser-dynamic": "npm:21.2.16" - "@angular/router": "npm:21.2.16" + "@angular-devkit/build-angular": "npm:22.0.0" + "@angular-eslint/builder": "npm:22.0.0" + "@angular/animations": "npm:22.0.0" + "@angular/cli": "npm:22.0.0" + "@angular/common": "npm:22.0.0" + "@angular/compiler": "npm:22.0.0" + "@angular/compiler-cli": "npm:22.0.0" + "@angular/core": "npm:22.0.0" + "@angular/forms": "npm:22.0.0" + "@angular/language-service": "npm:22.0.0" + "@angular/platform-browser": "npm:22.0.0" + "@angular/platform-browser-dynamic": "npm:22.0.0" + "@angular/router": "npm:22.0.0" "@eslint/js": "npm:10.0.1" "@types/jest": "npm:30.0.0" "@types/node": "npm:24.13.1" - angular-eslint: "npm:21.4.0" + angular-eslint: "npm:22.0.0" cypress: "npm:15.16.0" eslint: "npm:10.4.1" jest: "npm:30.4.2" jest-environment-jsdom: "npm:30.4.1" jsdom: "npm:29.1.1" - ng-packagr: "npm:21.2.5" + ng-packagr: "npm:22.0.0" rxjs: "npm:7.8.2" - ts-node: "npm:10.9.2" tslib: "npm:2.8.1" - typescript: "npm:5.9.3" - typescript-eslint: "npm:8.60.1" + typescript: "npm:6.0.3" + typescript-eslint: "npm:8.60.0" zone.js: "npm:0.16.2" languageName: unknown linkType: soft -"mute-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "mute-stream@npm:2.0.0" - checksum: 10c0/2cf48a2087175c60c8dcdbc619908b49c07f7adcfc37d29236b0c5c612d6204f789104c98cc44d38acab7b3c96f4a3ec2cfdc4934d0738d876dbefa2a12c69f4 - languageName: node - linkType: hard - "mute-stream@npm:^3.0.0": version: 3.0.0 resolution: "mute-stream@npm:3.0.0" @@ -15248,16 +14554,16 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.11": - version: 3.3.11 - resolution: "nanoid@npm:3.3.11" +"nanoid@npm:^3.3.11, nanoid@npm:^3.3.12": + version: 3.3.12 + resolution: "nanoid@npm:3.3.12" bin: nanoid: bin/nanoid.cjs - checksum: 10c0/40e7f70b3d15f725ca072dfc4f74e81fcf1fbb02e491cf58ac0c79093adc9b0a73b152bcde57df4b79cd097e13023d7504acb38404a4da7bc1cd8e887b82fe0b + checksum: 10c0/ba142b7b39e11e80c16dd74b0365d407880c87c1cf7e1480956981ae940ee36060fa5b6f092cd1e315184dd19244c657bd017d03327bd3c62247d691c5e8edfb languageName: node linkType: hard -"napi-postinstall@npm:^0.3.0": +"napi-postinstall@npm:^0.3.4": version: 0.3.4 resolution: "napi-postinstall@npm:0.3.4" bin: @@ -15274,14 +14580,14 @@ __metadata: linkType: hard "needle@npm:^3.1.0": - version: 3.3.1 - resolution: "needle@npm:3.3.1" + version: 3.5.0 + resolution: "needle@npm:3.5.0" dependencies: iconv-lite: "npm:^0.6.3" sax: "npm:^1.2.4" bin: needle: bin/needle - checksum: 10c0/233b9315d47b735867d03e7a018fb665ee6cacf3a83b991b19538019cf42b538a3e85ca745c840b4c5e9a0ffdca76472f941363bf7c166214ae8cbc650fd4d39 + checksum: 10c0/06d489a73851f2953f34cf8ffe213fce9b0090b6b2680b089ea9efa60aff0a5ec721ec051f5c678b0af814779876531225f4394d925956a735ac0751375477c2 languageName: node linkType: hard @@ -15313,20 +14619,26 @@ __metadata: languageName: node linkType: hard -"ng-packagr@npm:21.2.5": - version: 21.2.5 - resolution: "ng-packagr@npm:21.2.5" +"netmask@npm:^2.0.2": + version: 2.1.1 + resolution: "netmask@npm:2.1.1" + checksum: 10c0/c78e31869b0578fb0a9874a0c0fdf0e1f8b3492392d1043355fb11d9ea42ef94e0216c6aee7d8e15db39d1a8caf331f9b144ae3ee43fd951b73a66837711fb09 + languageName: node + linkType: hard + +"ng-packagr@npm:22.0.0": + version: 22.0.0 + resolution: "ng-packagr@npm:22.0.0" dependencies: "@ampproject/remapping": "npm:^2.3.0" "@rollup/plugin-json": "npm:^6.1.0" "@rollup/wasm-node": "npm:^4.24.0" ajv: "npm:^8.17.1" - ansi-colors: "npm:^4.1.3" browserslist: "npm:^4.26.0" chokidar: "npm:^5.0.0" commander: "npm:^14.0.0" dependency-graph: "npm:^1.0.0" - esbuild: "npm:^0.27.0" + esbuild: "npm:^0.28.0" find-cache-directory: "npm:^6.0.0" injection-js: "npm:^2.4.0" jsonc-parser: "npm:^3.3.1" @@ -15340,10 +14652,10 @@ __metadata: sass: "npm:^1.81.0" tinyglobby: "npm:^0.2.12" peerDependencies: - "@angular/compiler-cli": ^21.0.0 || ^21.2.0-next + "@angular/compiler-cli": ^22.0.0 || ^22.1.0-next.0 tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 tslib: ^2.3.0 - typescript: ">=5.9 <6.0" + typescript: ">=6.0 <6.1" dependenciesMeta: rollup: optional: true @@ -15352,7 +14664,7 @@ __metadata: optional: true bin: ng-packagr: src/cli/main.js - checksum: 10c0/a8f2cd534162b67b0f9eeae58fb21d09967412d91b4fc7a86d6966664f599d3b89616321bf4bf00ce5bdc6ede7e75740d883e0720c7f8d552917475a0408dd18 + checksum: 10c0/a6906d96836439667ae312140c39db451b50213ac2cd465372739106524cb3e5c566a11e491bea17d4a64fd5f5d7eba05383f26a0af2156383b1643308624568 languageName: node linkType: hard @@ -15428,43 +14740,23 @@ __metadata: languageName: node linkType: hard -"node-gyp@npm:^12.1.0": - version: 12.1.0 - resolution: "node-gyp@npm:12.1.0" +"node-gyp@npm:^12.1.0, node-gyp@npm:latest": + version: 12.4.0 + resolution: "node-gyp@npm:12.4.0" dependencies: env-paths: "npm:^2.2.0" exponential-backoff: "npm:^3.1.1" graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^15.0.0" nopt: "npm:^9.0.0" proc-log: "npm:^6.0.0" semver: "npm:^7.3.5" - tar: "npm:^7.5.2" + tar: "npm:^7.5.4" tinyglobby: "npm:^0.2.12" + undici: "npm:^6.25.0" which: "npm:^6.0.0" bin: node-gyp: bin/node-gyp.js - checksum: 10c0/f43efea8aaf0beb6b2f6184e533edad779b2ae38062953e21951f46221dd104006cc574154f2ad4a135467a5aae92c49e84ef289311a82e08481c5df0e8dc495 - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 11.5.0 - resolution: "node-gyp@npm:11.5.0" - dependencies: - env-paths: "npm:^2.2.0" - exponential-backoff: "npm:^3.1.1" - graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^14.0.3" - nopt: "npm:^8.0.0" - proc-log: "npm:^5.0.0" - semver: "npm:^7.3.5" - tar: "npm:^7.4.3" - tinyglobby: "npm:^0.2.12" - which: "npm:^5.0.0" - bin: - node-gyp: bin/node-gyp.js - checksum: 10c0/31ff49586991b38287bb15c3d529dd689cfc32f992eed9e6997b9d712d5d21fe818a8b1bbfe3b76a7e33765c20210c5713212f4aa329306a615b87d8a786da3a + checksum: 10c0/9acb7c798e124275a6f9c1f7eb64b5abd6196bb885a3945fb44ee0dccf435514e88cdfb0f228ee7ff76ef25107c1f39ff37a067bf92fd00b9aff9234db29ff9e languageName: node linkType: hard @@ -15475,21 +14767,20 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.26, node-releases@npm:^2.0.27": - version: 2.0.27 - resolution: "node-releases@npm:2.0.27" - checksum: 10c0/f1e6583b7833ea81880627748d28a3a7ff5703d5409328c216ae57befbced10ce2c991bea86434e8ec39003bd017f70481e2e5f8c1f7e0a7663241f81d6e00e2 +"node-releases@npm:^2.0.36": + version: 2.0.47 + resolution: "node-releases@npm:2.0.47" + checksum: 10c0/fb1a703adb88c3bfe73aa39ebe0a0bc6d59c9d20d74ad61fb50958ffb22840da82a7a256076840b84c8ed57bb80e6fc8e588e675712fcf7af269aab16206b9b5 languageName: node linkType: hard -"nopt@npm:^8.0.0": - version: 8.1.0 - resolution: "nopt@npm:8.1.0" +"noms@npm:0.0.0": + version: 0.0.0 + resolution: "noms@npm:0.0.0" dependencies: - abbrev: "npm:^3.0.0" - bin: - nopt: bin/nopt.js - checksum: 10c0/62e9ea70c7a3eb91d162d2c706b6606c041e4e7b547cbbb48f8b3695af457dd6479904d7ace600856bf923dd8d1ed0696f06195c8c20f02ac87c1da0e1d315ef + inherits: "npm:^2.0.1" + readable-stream: "npm:~1.0.31" + checksum: 10c0/7790dbbef45c593b5444b361cb9cde3260244ab66aaa199c0728d334525eb69df96231115cff260b71b92fc7a6915a642aa22f2f8448696d8dd6e7d7cebfccce languageName: node linkType: hard @@ -15559,17 +14850,7 @@ __metadata: languageName: node linkType: hard -"npm-packlist@npm:^10.0.1": - version: 10.0.3 - resolution: "npm-packlist@npm:10.0.3" - dependencies: - ignore-walk: "npm:^8.0.0" - proc-log: "npm:^6.0.0" - checksum: 10c0/f4fa58890e7d9e80299c284cdf65fafac6eae0c23b830bbae9953255571364897a6f22a02b5da63f0c43e45019d7446feec6ed79124edc6a44c8d6c9a19d25cf - languageName: node - linkType: hard - -"npm-packlist@npm:^10.0.4": +"npm-packlist@npm:^10.0.1, npm-packlist@npm:^10.0.4": version: 10.0.4 resolution: "npm-packlist@npm:10.0.4" dependencies: @@ -15642,9 +14923,9 @@ __metadata: linkType: hard "nwsapi@npm:^2.2.16": - version: 2.2.23 - resolution: "nwsapi@npm:2.2.23" - checksum: 10c0/e44bfc9246baf659581206ed716d291a1905185247795fb8a302cb09315c943a31023b4ac4d026a5eaf32b2def51d77b3d0f9ebf4f3d35f70e105fcb6447c76e + version: 2.2.24 + resolution: "nwsapi@npm:2.2.24" + checksum: 10c0/9bc04ee9c7698f1b5506778d36f7382962f71667205d441d6a50f6180ee92328e770b76be78b907817ee103241b29984d3a17ae387e4723aebe0aeaed7a7c3a1 languageName: node linkType: hard @@ -15655,7 +14936,7 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.13.3": +"object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": version: 1.13.4 resolution: "object-inspect@npm:1.13.4" checksum: 10c0/d7f8711e803b96ea3191c745d6f8056ce1f2496e530e6a19a0e92d89b0fa3c76d910c31f0aa270432db6bd3b2f85500a376a83aaba849a8d518c8845b3211692 @@ -15684,13 +14965,13 @@ __metadata: linkType: hard "obug@npm:^2.1.1": - version: 2.1.1 - resolution: "obug@npm:2.1.1" - checksum: 10c0/59dccd7de72a047e08f8649e94c1015ec72f94eefb6ddb57fb4812c4b425a813bc7e7cd30c9aca20db3c59abc3c85cc7a62bb656a968741d770f4e8e02bc2e78 + version: 2.1.2 + resolution: "obug@npm:2.1.2" + checksum: 10c0/e857080ef23c018bd4ad8553238cd97008cd4ab8472b4b83eafe75c19e9b6f84ac8fe53ef7f50b515a1dbf83e6372dd0b198aece33bc716edfa70366f6f6ed5e languageName: node linkType: hard -"on-finished@npm:2.4.1, on-finished@npm:^2.4.1, on-finished@npm:~2.4.1": +"on-finished@npm:^2.4.1, on-finished@npm:~2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" dependencies: @@ -15796,25 +15077,9 @@ __metadata: languageName: node linkType: hard -"ora@npm:9.3.0": - version: 9.3.0 - resolution: "ora@npm:9.3.0" - dependencies: - chalk: "npm:^5.6.2" - cli-cursor: "npm:^5.0.0" - cli-spinners: "npm:^3.2.0" - is-interactive: "npm:^2.0.0" - is-unicode-supported: "npm:^2.1.0" - log-symbols: "npm:^7.0.1" - stdin-discarder: "npm:^0.3.1" - string-width: "npm:^8.1.0" - checksum: 10c0/1d25c0f43e20389757285f740686958bce78ccb9d03dda190ecc92ae585cbc498fa54cf13933fea2f96cb97a0be82e927cf0fd8c96217459f9c43d915a380531 - languageName: node - linkType: hard - -"ora@npm:^9.0.0": - version: 9.0.0 - resolution: "ora@npm:9.0.0" +"ora@npm:9.4.0, ora@npm:^9.0.0": + version: 9.4.0 + resolution: "ora@npm:9.4.0" dependencies: chalk: "npm:^5.6.2" cli-cursor: "npm:^5.0.0" @@ -15822,17 +15087,16 @@ __metadata: is-interactive: "npm:^2.0.0" is-unicode-supported: "npm:^2.1.0" log-symbols: "npm:^7.0.1" - stdin-discarder: "npm:^0.2.2" + stdin-discarder: "npm:^0.3.2" string-width: "npm:^8.1.0" - strip-ansi: "npm:^7.1.2" - checksum: 10c0/1ec886a9a458eccd335bc66d9bf8a9ded2d3c3fc44416676c90bd72161b677559a7e9bde981b06066ac1be57cc62025f0d1319a376855cb64bb3403637a3815b + checksum: 10c0/8f2d7a8869cd68607797ac0ffe9f5cdceeb6009437672510d9920aea794cdd055164e3fe804248624c4940a71b22f94f1ffd94ce8fecf0746baef97a5c121a91 languageName: node linkType: hard "ordered-binary@npm:^1.5.3": - version: 1.6.0 - resolution: "ordered-binary@npm:1.6.0" - checksum: 10c0/fc82d1dc452e3e754749f88b1b4620c07fa685d47064c31a72dcc130d9e7dd02bde6606f4447eb15d4b2e8aea4af417cfa68705aadf5a0205787beb9e8448b30 + version: 1.6.1 + resolution: "ordered-binary@npm:1.6.1" + checksum: 10c0/27aca7a681b859acdc3607784288462662a4a0575b1c727ef8710c3e81e3a7703d2d64e4401dbba049c50d4ec4d89acbe198fdf5ca975a4709962ecfc42f2bbf languageName: node linkType: hard @@ -15938,20 +15202,13 @@ __metadata: languageName: node linkType: hard -"p-map@npm:^7.0.1, p-map@npm:^7.0.4": +"p-map@npm:^7.0.1, p-map@npm:^7.0.2, p-map@npm:^7.0.4": version: 7.0.4 resolution: "p-map@npm:7.0.4" checksum: 10c0/a5030935d3cb2919d7e89454d1ce82141e6f9955413658b8c9403cfe379283770ed3048146b44cde168aa9e8c716505f196d5689db0ae3ce9a71521a2fef3abd languageName: node linkType: hard -"p-map@npm:^7.0.2": - version: 7.0.3 - resolution: "p-map@npm:7.0.3" - checksum: 10c0/46091610da2b38ce47bcd1d8b4835a6fa4e832848a6682cf1652bc93915770f4617afc844c10a77d1b3e56d2472bb2d5622353fa3ead01a7f42b04fc8e744a5c - languageName: node - linkType: hard - "p-retry@npm:^6.2.0": version: 6.2.1 resolution: "p-retry@npm:6.2.1" @@ -15977,68 +15234,40 @@ __metadata: languageName: node linkType: hard -"package-json-from-dist@npm:^1.0.0, package-json-from-dist@npm:^1.0.1": - version: 1.0.1 - resolution: "package-json-from-dist@npm:1.0.1" - checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b +"pac-proxy-agent@npm:^7.1.0": + version: 7.2.0 + resolution: "pac-proxy-agent@npm:7.2.0" + dependencies: + "@tootallnate/quickjs-emscripten": "npm:^0.23.0" + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + get-uri: "npm:^6.0.1" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.6" + pac-resolver: "npm:^7.0.1" + socks-proxy-agent: "npm:^8.0.5" + checksum: 10c0/0265c17c9401c2ea735697931a6553a0c6d8b20c4d7d4e3b3a0506080ba69a8d5ad656e2a6be875411212e2b6ed7a4d9526dd3997e08581fdfb1cbcad454c296 languageName: node linkType: hard -"pacote@npm:21.3.1": - version: 21.3.1 - resolution: "pacote@npm:21.3.1" +"pac-resolver@npm:^7.0.1": + version: 7.0.1 + resolution: "pac-resolver@npm:7.0.1" dependencies: - "@npmcli/git": "npm:^7.0.0" - "@npmcli/installed-package-contents": "npm:^4.0.0" - "@npmcli/package-json": "npm:^7.0.0" - "@npmcli/promise-spawn": "npm:^9.0.0" - "@npmcli/run-script": "npm:^10.0.0" - cacache: "npm:^20.0.0" - fs-minipass: "npm:^3.0.0" - minipass: "npm:^7.0.2" - npm-package-arg: "npm:^13.0.0" - npm-packlist: "npm:^10.0.1" - npm-pick-manifest: "npm:^11.0.1" - npm-registry-fetch: "npm:^19.0.0" - proc-log: "npm:^6.0.0" - promise-retry: "npm:^2.0.1" - sigstore: "npm:^4.0.0" - ssri: "npm:^13.0.0" - tar: "npm:^7.4.3" - bin: - pacote: bin/index.js - checksum: 10c0/395d4ce333e61ea44f9563ab68be9c64b00a823ff3f6d276358caddd4c472b0fdcbda129a8c27d8a0242c17e97a8c41cfe9f802d8989626fc9c272c003eaa468 + degenerator: "npm:^5.0.0" + netmask: "npm:^2.0.2" + checksum: 10c0/5f3edd1dd10fded31e7d1f95776442c3ee51aa098c28b74ede4927d9677ebe7cebb2636750c24e945f5b84445e41ae39093d3a1014a994e5ceb9f0b1b88ebff5 languageName: node linkType: hard -"pacote@npm:^21.0.0, pacote@npm:^21.0.2": - version: 21.0.4 - resolution: "pacote@npm:21.0.4" - dependencies: - "@npmcli/git": "npm:^7.0.0" - "@npmcli/installed-package-contents": "npm:^4.0.0" - "@npmcli/package-json": "npm:^7.0.0" - "@npmcli/promise-spawn": "npm:^9.0.0" - "@npmcli/run-script": "npm:^10.0.0" - cacache: "npm:^20.0.0" - fs-minipass: "npm:^3.0.0" - minipass: "npm:^7.0.2" - npm-package-arg: "npm:^13.0.0" - npm-packlist: "npm:^10.0.1" - npm-pick-manifest: "npm:^11.0.1" - npm-registry-fetch: "npm:^19.0.0" - proc-log: "npm:^6.0.0" - promise-retry: "npm:^2.0.1" - sigstore: "npm:^4.0.0" - ssri: "npm:^13.0.0" - tar: "npm:^7.4.3" - bin: - pacote: bin/index.js - checksum: 10c0/42ba048d7f463d2f0683bc7632a64c921d164463c17fb94b48ff412c5b852d2f58bb11bb510e0fb990d851e5c1f37f5669d20881b229797baba865b1c70a9fb6 +"package-json-from-dist@npm:^1.0.0, package-json-from-dist@npm:^1.0.1": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b languageName: node linkType: hard -"pacote@npm:^21.5.0": +"pacote@npm:21.5.0, pacote@npm:^21.0.0, pacote@npm:^21.0.2, pacote@npm:^21.5.0": version: 21.5.0 resolution: "pacote@npm:21.5.0" dependencies: @@ -16147,14 +15376,14 @@ __metadata: languageName: node linkType: hard -"parse5-html-rewriting-stream@npm:8.0.0": - version: 8.0.0 - resolution: "parse5-html-rewriting-stream@npm:8.0.0" +"parse5-html-rewriting-stream@npm:8.0.1": + version: 8.0.1 + resolution: "parse5-html-rewriting-stream@npm:8.0.1" dependencies: - entities: "npm:^6.0.0" + entities: "npm:^8.0.0" parse5: "npm:^8.0.0" parse5-sax-parser: "npm:^8.0.0" - checksum: 10c0/45f685115000c7e8c0b37243062589e486638e6337373553104cbd177ae314c2f0fecad812023394759882a7bb64d5c4dfa55a5146ebfc0e1de4a4d94b0e9b44 + checksum: 10c0/466074927c6df728f7bc2545b7742245ed518b698a7b37f0008a832e8d40151550def3fa6f0475caf5b53fdcf9c389152c78b16bc43095bb82e12e4669255555 languageName: node linkType: hard @@ -16176,16 +15405,7 @@ __metadata: languageName: node linkType: hard -"parse5@npm:^8.0.0": - version: 8.0.0 - resolution: "parse5@npm:8.0.0" - dependencies: - entities: "npm:^6.0.0" - checksum: 10c0/8279892dcd77b2f2229707f60eb039e303adf0288812b2a8fd5acf506a4d432da833c6c5d07a6554bef722c2367a81ef4a1f7e9336564379a7dba3e798bf16b3 - languageName: node - linkType: hard - -"parse5@npm:^8.0.1": +"parse5@npm:^8.0.0, parse5@npm:^8.0.1": version: 8.0.1 resolution: "parse5@npm:8.0.1" dependencies: @@ -16194,7 +15414,7 @@ __metadata: languageName: node linkType: hard -"parseurl@npm:^1.3.3, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": +"parseurl@npm:^1.3.3, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" checksum: 10c0/90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5 @@ -16263,27 +15483,27 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^2.0.0": - version: 2.0.1 - resolution: "path-scurry@npm:2.0.1" +"path-scurry@npm:^2.0.2": + version: 2.0.2 + resolution: "path-scurry@npm:2.0.2" dependencies: lru-cache: "npm:^11.0.0" minipass: "npm:^7.1.2" - checksum: 10c0/2a16ed0e81fbc43513e245aa5763354e25e787dab0d539581a6c3f0f967461a159ed6236b2559de23aa5b88e7dc32b469b6c47568833dd142a4b24b4f5cd2620 + checksum: 10c0/b35ad37cf6557a87fd057121ce2be7695380c9138d93e87ae928609da259ea0a170fac6f3ef1eb3ece8a068e8b7f2f3adf5bb2374cf4d4a57fe484954fcc9482 languageName: node linkType: hard "path-to-regexp@npm:^8.0.0": - version: 8.3.0 - resolution: "path-to-regexp@npm:8.3.0" - checksum: 10c0/ee1544a73a3f294a97a4c663b0ce71bbf1621d732d80c9c9ed201b3e911a86cb628ebad691b9d40f40a3742fe22011e5a059d8eed2cf63ec2cb94f6fb4efe67c + version: 8.4.2 + resolution: "path-to-regexp@npm:8.4.2" + checksum: 10c0/05b115c49b47ad252ce05faa32930f643f23769c68b8bcfe78ad833545140c48bbffb3266986d6c8d5db13a64cf12e07e0d72d9882cab830efeefa553533ebaf languageName: node linkType: hard "path-to-regexp@npm:~0.1.12": - version: 0.1.12 - resolution: "path-to-regexp@npm:0.1.12" - checksum: 10c0/1c6ff10ca169b773f3bba943bbc6a07182e332464704572962d277b900aeee81ac6aa5d060ff9e01149636c30b1f63af6e69dd7786ba6e0ddb39d4dee1f0645b + version: 0.1.13 + resolution: "path-to-regexp@npm:0.1.13" + checksum: 10c0/1cae3921739c154a8926e136185a10c916f79a249b9072a5001b266d96e193860ca03867e8e8cc808b786862d750f427ed93686bc259355442c3407a62deab1a languageName: node linkType: hard @@ -16315,7 +15535,7 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:4.0.4, picomatch@npm:^4.0.4": +"picomatch@npm:4.0.4, picomatch@npm:^4.0.2, picomatch@npm:^4.0.3, picomatch@npm:^4.0.4": version: 4.0.4 resolution: "picomatch@npm:4.0.4" checksum: 10c0/e2c6023372cc7b5764719a5ffb9da0f8e781212fa7ca4bd0562db929df8e117460f00dff3cb7509dacfc06b86de924b247f504d0ce1806a37fac4633081466b0 @@ -16323,16 +15543,9 @@ __metadata: linkType: hard "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be - languageName: node - linkType: hard - -"picomatch@npm:^4.0.2, picomatch@npm:^4.0.3": - version: 4.0.3 - resolution: "picomatch@npm:4.0.3" - checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2 + version: 2.3.2 + resolution: "picomatch@npm:2.3.2" + checksum: 10c0/a554d1709e59be97d1acb9eaedbbc700a5c03dbd4579807baed95100b00420bc729335440ef15004ae2378984e2487a7c1cebd743cfdb72b6fa9ab69223c0d61 languageName: node linkType: hard @@ -16370,9 +15583,9 @@ __metadata: linkType: hard "pkce-challenge@npm:^5.0.0": - version: 5.0.0 - resolution: "pkce-challenge@npm:5.0.0" - checksum: 10c0/c6706d627fdbb6f22bf8cc5d60d96d6b6a7bb481399b336a3d3f4e9bfba3e167a2c32f8ec0b5e74be686a0ba3bcc9894865d4c2dd1b91cea4c05dba1f28602c3 + version: 5.0.1 + resolution: "pkce-challenge@npm:5.0.1" + checksum: 10c0/207f4cb976682f27e8324eb49cf71937c98fbb8341a0b8f6142bc6f664825b30e049a54a21b5c034e823ee3c3d412f10d74bd21de78e17452a6a496c2991f57c languageName: node linkType: hard @@ -16395,8 +15608,8 @@ __metadata: linkType: hard "pkijs@npm:^3.3.3": - version: 3.3.3 - resolution: "pkijs@npm:3.3.3" + version: 3.4.0 + resolution: "pkijs@npm:3.4.0" dependencies: "@noble/hashes": "npm:1.4.0" asn1js: "npm:^3.0.6" @@ -16404,7 +15617,7 @@ __metadata: pvtsutils: "npm:^1.3.6" pvutils: "npm:^1.1.3" tslib: "npm:^2.8.1" - checksum: 10c0/7b60f3398c35538ce05b613b5ff86c0df6b7e236e2ba6063fec2f89a80eb214d45c175e19cf13e20bed0c474000f1d3653a5234efc42e9528d1912d2edae5914 + checksum: 10c0/33cfab9283702782ae228bd2d4a51b1e9b2e0d6e2141207f29ee95716101ac4fe6e6821882da5f5eca28c74be3964b181b09e95cbbb757b2bd9dca918a5765fd languageName: node linkType: hard @@ -16415,15 +15628,15 @@ __metadata: languageName: node linkType: hard -"postcss-loader@npm:8.2.0": - version: 8.2.0 - resolution: "postcss-loader@npm:8.2.0" +"postcss-loader@npm:8.2.1": + version: 8.2.1 + resolution: "postcss-loader@npm:8.2.1" dependencies: cosmiconfig: "npm:^9.0.0" jiti: "npm:^2.5.1" semver: "npm:^7.6.2" peerDependencies: - "@rspack/core": 0.x || 1.x + "@rspack/core": 0.x || ^1.0.0 || ^2.0.0-0 postcss: ^7.0.0 || ^8.0.1 webpack: ^5.0.0 peerDependenciesMeta: @@ -16431,7 +15644,7 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/471f9a1c313522580f3385b92ab847cf161c6972bedc73525126a3c0a08733f0f6444d04ca9e0a8b1e36b44123e103dfcd8f53378b7e5afc95fa6d9ab423c480 + checksum: 10c0/8ef4687f05972a85b4ad8e714f692fceec16f334d99edaa09c222dc08d01afcdcf7bed2b3a45f7888900cb9fd3324b9741d98ce694e33e87bebdc038dd17e30b languageName: node linkType: hard @@ -16496,12 +15709,12 @@ __metadata: linkType: hard "postcss-selector-parser@npm:^7.0.0": - version: 7.1.0 - resolution: "postcss-selector-parser@npm:7.1.0" + version: 7.1.1 + resolution: "postcss-selector-parser@npm:7.1.1" dependencies: cssesc: "npm:^3.0.0" util-deprecate: "npm:^1.0.2" - checksum: 10c0/0fef257cfd1c0fe93c18a3f8a6e739b4438b527054fd77e9a62730a89b2d0ded1b59314a7e4aaa55bc256204f40830fecd2eb50f20f8cb7ab3a10b52aa06c8aa + checksum: 10c0/02d3b1589ddcddceed4b583b098b95a7266dacd5135f041e5d913ebb48e874fd333a36e564cc9a2ec426a464cb18db11cb192ac76247aced5eba8c951bf59507 languageName: node linkType: hard @@ -16512,36 +15725,25 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.5.12": - version: 8.5.12 - resolution: "postcss@npm:8.5.12" - dependencies: - nanoid: "npm:^3.3.11" - picocolors: "npm:^1.1.1" - source-map-js: "npm:^1.2.1" - checksum: 10c0/5baebaf574c567bc1b3d61197f38af4ce5920b8f611c887fb6bc3dcc14af00253c169dbf19897bc889cce0b0d9818ab5eb4ea0caedf02b0bab10da8a43ce8c12 - languageName: node - linkType: hard - -"postcss@npm:^8.2.14, postcss@npm:^8.4.40, postcss@npm:^8.4.47, postcss@npm:^8.4.49, postcss@npm:^8.5.6": - version: 8.5.6 - resolution: "postcss@npm:8.5.6" +"postcss@npm:8.5.13": + version: 8.5.13 + resolution: "postcss@npm:8.5.13" dependencies: nanoid: "npm:^3.3.11" picocolors: "npm:^1.1.1" source-map-js: "npm:^1.2.1" - checksum: 10c0/5127cc7c91ed7a133a1b7318012d8bfa112da9ef092dddf369ae699a1f10ebbd89b1b9f25f3228795b84585c72aabd5ced5fc11f2ba467eedf7b081a66fad024 + checksum: 10c0/3aa7c8cbdfbfd99b34406a433cef56d164dd135fc9cb9e63d487cc363291f877a55ec7b8ff6ec15348c17c2d98a43be46bfad671e6340403041a3e79f70c2f2f languageName: node linkType: hard -"postcss@npm:^8.5.8": - version: 8.5.8 - resolution: "postcss@npm:8.5.8" +"postcss@npm:^8.2.14, postcss@npm:^8.4.40, postcss@npm:^8.4.47, postcss@npm:^8.4.49, postcss@npm:^8.5.15, postcss@npm:^8.5.6": + version: 8.5.15 + resolution: "postcss@npm:8.5.15" dependencies: - nanoid: "npm:^3.3.11" + nanoid: "npm:^3.3.12" picocolors: "npm:^1.1.1" source-map-js: "npm:^1.2.1" - checksum: 10c0/dd918f7127ee7c60a0295bae2e72b3787892296e1d1c3c564d7a2a00c68d8df83cadc3178491259daa19ccc54804fb71ed8c937c6787e08d8bd4bedf8d17044c + checksum: 10c0/7f2e63ae22fbe43aace1bf652bd99da4e90737c64194d49e51ddc9cd0f9e51ff2861a7d734379b494deffa03a880a5c65eec70bc29ee9ebaa7136dde3eee8f31 languageName: node linkType: hard @@ -16592,18 +15794,7 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:30.2.0, pretty-format@npm:^30.0.0": - version: 30.2.0 - resolution: "pretty-format@npm:30.2.0" - dependencies: - "@jest/schemas": "npm:30.0.5" - ansi-styles: "npm:^5.2.0" - react-is: "npm:^18.3.1" - checksum: 10c0/8fdacfd281aa98124e5df80b2c17223fdcb84433876422b54863a6849381b3059eb42b9806d92d2853826bcb966bcb98d499bea5b1e912d869a3c3107fd38d35 - languageName: node - linkType: hard - -"pretty-format@npm:30.4.1": +"pretty-format@npm:30.4.1, pretty-format@npm:^30.0.0": version: 30.4.1 resolution: "pretty-format@npm:30.4.1" dependencies: @@ -16615,17 +15806,10 @@ __metadata: languageName: node linkType: hard -"proc-log@npm:^5.0.0": - version: 5.0.0 - resolution: "proc-log@npm:5.0.0" - checksum: 10c0/bbe5edb944b0ad63387a1d5b1911ae93e05ce8d0f60de1035b218cdcceedfe39dbd2c697853355b70f1a090f8f58fe90da487c85216bf9671f9499d1a897e9e3 - languageName: node - linkType: hard - -"proc-log@npm:^6.0.0": - version: 6.0.0 - resolution: "proc-log@npm:6.0.0" - checksum: 10c0/40c5e2b4c55e395a3bd72e38cba9c26e58598a1f4844fa6a115716d5231a0919f46aa8e351147035d91583ad39a794593615078c948bc001fe3beb99276be776 +"proc-log@npm:^6.0.0, proc-log@npm:^6.1.0": + version: 6.1.0 + resolution: "proc-log@npm:6.1.0" + checksum: 10c0/4f178d4062733ead9d71a9b1ab24ebcecdfe2250916a5b1555f04fe2eda972a0ec76fbaa8df1ad9c02707add6749219d118a4fc46dc56bdfe4dde4b47d80bb82 languageName: node linkType: hard @@ -16657,6 +15841,13 @@ __metadata: languageName: node linkType: hard +"progress@npm:^2.0.3": + version: 2.0.3 + resolution: "progress@npm:2.0.3" + checksum: 10c0/1697e07cb1068055dbe9fe858d242368ff5d2073639e652b75a7eb1f2a1a8d4afd404d719de23c7b48481a6aa0040686310e2dac2f53d776daa2176d3f96369c + languageName: node + linkType: hard + "promise-all-reject-late@npm:^1.0.0": version: 1.0.1 resolution: "promise-all-reject-late@npm:1.0.1" @@ -16671,16 +15862,6 @@ __metadata: languageName: node linkType: hard -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: "npm:^2.0.2" - retry: "npm:^0.12.0" - checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 - languageName: node - linkType: hard - "protocols@npm:^2.0.0, protocols@npm:^2.0.1": version: 2.0.2 resolution: "protocols@npm:2.0.2" @@ -16698,6 +15879,22 @@ __metadata: languageName: node linkType: hard +"proxy-agent@npm:^6.5.0": + version: 6.5.0 + resolution: "proxy-agent@npm:6.5.0" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + http-proxy-agent: "npm:^7.0.1" + https-proxy-agent: "npm:^7.0.6" + lru-cache: "npm:^7.14.1" + pac-proxy-agent: "npm:^7.1.0" + proxy-from-env: "npm:^1.1.0" + socks-proxy-agent: "npm:^8.0.5" + checksum: 10c0/7fd4e6f36bf17098a686d4aee3b8394abfc0b0537c2174ce96b0a4223198b9fafb16576c90108a3fcfc2af0168bd7747152bfa1f58e8fee91d3780e79aab7fd8 + languageName: node + linkType: hard + "proxy-from-env@npm:1.0.0": version: 1.0.0 resolution: "proxy-from-env@npm:1.0.0" @@ -16705,6 +15902,13 @@ __metadata: languageName: node linkType: hard +"proxy-from-env@npm:^1.1.0": + version: 1.1.0 + resolution: "proxy-from-env@npm:1.1.0" + checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b + languageName: node + linkType: hard + "prr@npm:~1.0.1": version: 1.0.1 resolution: "prr@npm:1.0.1" @@ -16713,12 +15917,12 @@ __metadata: linkType: hard "pump@npm:^3.0.0": - version: 3.0.3 - resolution: "pump@npm:3.0.3" + version: 3.0.4 + resolution: "pump@npm:3.0.4" dependencies: end-of-stream: "npm:^1.1.0" once: "npm:^1.3.1" - checksum: 10c0/ada5cdf1d813065bbc99aa2c393b8f6beee73b5de2890a8754c9f488d7323ffd2ca5f5a0943b48934e3fcbd97637d0337369c3c631aeb9614915db629f1c75c9 + checksum: 10c0/2780e66b5471c19e3e3e1063b84f3f6a3a08367f24c5ed552f98cd5901e6ada27c7ad6495d4244f553fd03b01884a4561933064f053f47c8994d84fd352768ea languageName: node linkType: hard @@ -16736,6 +15940,21 @@ __metadata: languageName: node linkType: hard +"puppeteer-core@npm:24.43.1": + version: 24.43.1 + resolution: "puppeteer-core@npm:24.43.1" + dependencies: + "@puppeteer/browsers": "npm:2.13.2" + chromium-bidi: "npm:14.0.0" + debug: "npm:^4.4.3" + devtools-protocol: "npm:0.0.1608973" + typed-query-selector: "npm:^2.12.2" + webdriver-bidi-protocol: "npm:0.4.1" + ws: "npm:^8.20.0" + checksum: 10c0/720cdc67a3c70b1743e27783ede0e5f03323ff75e3f1332b645900f78210091fb57c49d4ac42d61d3550a0352294d9ade08a30647290e98632e70fe71225489d + languageName: node + linkType: hard + "puppeteer-core@npm:25.1.0": version: 25.1.0 resolution: "puppeteer-core@npm:25.1.0" @@ -16750,6 +15969,22 @@ __metadata: languageName: node linkType: hard +"puppeteer@npm:24.43.1": + version: 24.43.1 + resolution: "puppeteer@npm:24.43.1" + dependencies: + "@puppeteer/browsers": "npm:2.13.2" + chromium-bidi: "npm:14.0.0" + cosmiconfig: "npm:^9.0.0" + devtools-protocol: "npm:0.0.1608973" + puppeteer-core: "npm:24.43.1" + typed-query-selector: "npm:^2.12.2" + bin: + puppeteer: lib/cjs/puppeteer/node/cli.js + checksum: 10c0/14e6efbd33ee0f6af377f3f17a11bd409925ef8504ccbc06318a995aba6bc4a3caa3f4d84ca323cdbaa396a20f1f91f284e8501723d557cfdb8c354985465675 + languageName: node + linkType: hard + "puppeteer@npm:25.1.0": version: 25.1.0 resolution: "puppeteer@npm:25.1.0" @@ -16782,53 +16017,26 @@ __metadata: languageName: node linkType: hard -"pvutils@npm:^1.1.3": +"pvutils@npm:^1.1.3, pvutils@npm:^1.1.5": version: 1.1.5 resolution: "pvutils@npm:1.1.5" checksum: 10c0/e968b07b78a58fec9377fe7aa6342c8cfa21c8fb4afc4e51e1489bd42bec6dc71b8a52541d0aede0aea17adec7ca3f89f29f56efdc31d0083cc02e9bb5721bcf languageName: node linkType: hard -"qjobs@npm:^1.2.0": - version: 1.2.0 - resolution: "qjobs@npm:1.2.0" - checksum: 10c0/772207772b856a3b1ec673b11a6cda074f1b82821644f2d042504b438ea3ea1fe918555547491e717e8694ec105379fe5139fc5ddd7937b21f7712bb648ed01d - languageName: node - linkType: hard - -"qs@npm:6.13.0": - version: 6.13.0 - resolution: "qs@npm:6.13.0" - dependencies: - side-channel: "npm:^1.0.6" - checksum: 10c0/62372cdeec24dc83a9fb240b7533c0fdcf0c5f7e0b83343edd7310f0ab4c8205a5e7c56406531f2e47e1b4878a3821d652be4192c841de5b032ca83619d8f860 - languageName: node - linkType: hard - -"qs@npm:^6.14.0": - version: 6.14.0 - resolution: "qs@npm:6.14.0" - dependencies: - side-channel: "npm:^1.1.0" - checksum: 10c0/8ea5d91bf34f440598ee389d4a7d95820e3b837d3fd9f433871f7924801becaa0cd3b3b4628d49a7784d06a8aea9bc4554d2b6d8d584e2d221dc06238a42909c - languageName: node - linkType: hard - -"qs@npm:^6.14.1, qs@npm:~6.14.1": - version: 6.14.1 - resolution: "qs@npm:6.14.1" - dependencies: - side-channel: "npm:^1.1.0" - checksum: 10c0/0e3b22dc451f48ce5940cbbc7c7d9068d895074f8c969c0801ac15c1313d1859c4d738e46dc4da2f498f41a9ffd8c201bd9fb12df67799b827db94cc373d2613 +"qjobs@npm:^1.2.0": + version: 1.2.0 + resolution: "qjobs@npm:1.2.0" + checksum: 10c0/772207772b856a3b1ec673b11a6cda074f1b82821644f2d042504b438ea3ea1fe918555547491e717e8694ec105379fe5139fc5ddd7937b21f7712bb648ed01d languageName: node linkType: hard -"qs@npm:~6.14.0": - version: 6.14.2 - resolution: "qs@npm:6.14.2" +"qs@npm:^6.14.0, qs@npm:^6.14.1, qs@npm:^6.15.2, qs@npm:~6.15.1": + version: 6.15.2 + resolution: "qs@npm:6.15.2" dependencies: side-channel: "npm:^1.1.0" - checksum: 10c0/646110124476fc9acf3c80994c8c3a0600cbad06a4ede1c9e93341006e8426d64e85e048baf8f0c4995f0f1bf0f37d1f3acc5ec1455850b81978792969a60ef6 + checksum: 10c0/e6fd5f6f0aab06d480fe9ab15cebfc4ce4235303e2f91dc69a8f7f4df1e668a61c11d1cfbabacf4295cbbeb7b670ed23db45307480726259761f98e5695e93a7 languageName: node linkType: hard @@ -16886,15 +16094,6 @@ __metadata: languageName: node linkType: hard -"randombytes@npm:^2.1.0": - version: 2.1.0 - resolution: "randombytes@npm:2.1.0" - dependencies: - safe-buffer: "npm:^5.1.0" - checksum: 10c0/50395efda7a8c94f5dffab564f9ff89736064d32addf0cc7e8bf5e4166f09f8ded7a0849ca6c2d2a59478f7d90f78f20d8048bca3cdf8be09d8e8a10790388f3 - languageName: node - linkType: hard - "range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": version: 1.2.1 resolution: "range-parser@npm:1.2.1" @@ -16902,31 +16101,7 @@ __metadata: languageName: node linkType: hard -"raw-body@npm:2.5.2": - version: 2.5.2 - resolution: "raw-body@npm:2.5.2" - dependencies: - bytes: "npm:3.1.2" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - unpipe: "npm:1.0.0" - checksum: 10c0/b201c4b66049369a60e766318caff5cb3cc5a900efd89bdac431463822d976ad0670912c931fdbdcf5543207daf6f6833bca57aa116e1661d2ea91e12ca692c4 - languageName: node - linkType: hard - -"raw-body@npm:^3.0.0": - version: 3.0.1 - resolution: "raw-body@npm:3.0.1" - dependencies: - bytes: "npm:3.1.2" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.7.0" - unpipe: "npm:1.0.0" - checksum: 10c0/892f4fbd21ecab7e2fed0f045f7af9e16df7e8050879639d4e482784a2f4640aaaa33d916a0e98013f23acb82e09c2e3c57f84ab97104449f728d22f65a7d79a - languageName: node - linkType: hard - -"raw-body@npm:^3.0.1": +"raw-body@npm:^3.0.0, raw-body@npm:^3.0.1": version: 3.0.2 resolution: "raw-body@npm:3.0.2" dependencies: @@ -16950,7 +16125,7 @@ __metadata: languageName: node linkType: hard -"react-is-18@npm:react-is@^18.3.1, react-is@npm:^18.3.1": +"react-is-18@npm:react-is@^18.3.1": version: 18.3.1 resolution: "react-is@npm:18.3.1" checksum: 10c0/f2f1e60010c683479e74c63f96b09fb41603527cd131a9959e2aee1e5a8b0caf270b365e5ca77d4a6b18aae659b60a86150bb3979073528877029b35aecd2072 @@ -16958,9 +16133,9 @@ __metadata: linkType: hard "react-is-19@npm:react-is@^19.2.5": - version: 19.2.6 - resolution: "react-is@npm:19.2.6" - checksum: 10c0/263177f370fc156b279d22570dd6e922a0ad641a4a426a4cb70284b8003b00ef532d59f2beca1d22a1ca0b37f85f9077d7733ca5d344ebecd2942e9bc2a2a3c0 + version: 19.2.7 + resolution: "react-is@npm:19.2.7" + checksum: 10c0/419fe54d5bd7fdf5414a5bb7bd9a1e0e36f9fae28ffb4cb73290fbe342bde15d8584a90d1db62547f6aa03018dce517b178a041abb522136cd4b4b51b4e94c83 languageName: node linkType: hard @@ -17012,6 +16187,18 @@ __metadata: languageName: node linkType: hard +"readable-stream@npm:~1.0.31": + version: 1.0.34 + resolution: "readable-stream@npm:1.0.34" + dependencies: + core-util-is: "npm:~1.0.0" + inherits: "npm:~2.0.1" + isarray: "npm:0.0.1" + string_decoder: "npm:~0.10.x" + checksum: 10c0/02272551396ed8930ddee1a088bdf0379f0f7cc47ac49ed8804e998076cb7daec9fbd2b1fd9c0490ec72e56e8bb3651abeb8080492b8e0a9c3f2158330908ed6 + languageName: node + linkType: hard + "readdirp@npm:^4.0.1": version: 4.1.2 resolution: "readdirp@npm:4.1.2" @@ -17094,13 +16281,13 @@ __metadata: linkType: hard "regjsparser@npm:^0.13.0": - version: 0.13.0 - resolution: "regjsparser@npm:0.13.0" + version: 0.13.1 + resolution: "regjsparser@npm:0.13.1" dependencies: jsesc: "npm:~3.1.0" bin: regjsparser: bin/parser - checksum: 10c0/4702f85cda09f67747c1b2fb673a0f0e5d1ba39d55f177632265a0be471ba59e3f320623f411649141f752b126b8126eac3ff4c62d317921e430b0472bfc6071 + checksum: 10c0/1276c983f00de49e37ef76b181df4390699b46e3666fbe6b8b5512bd75919112574cf023f28ac720d427be158af60dba6a77cce9a8aaff14967263636e667356 languageName: node linkType: hard @@ -17184,6 +16371,13 @@ __metadata: languageName: node linkType: hard +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 10c0/fb8f7bbe2ca281a73b7ef423a1cbc786fb244bd7a95cbe5c3fba25b27d327150beca8ba02f622baea65919a57e061eb5005204daa5f93ed590d9b77463a567ab + languageName: node + linkType: hard + "resolve-url-loader@npm:5.0.0": version: 5.0.0 resolution: "resolve-url-loader@npm:5.0.0" @@ -17197,29 +16391,31 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.5, resolve@npm:^1.22.10, resolve@npm:^1.22.11": - version: 1.22.11 - resolution: "resolve@npm:1.22.11" +"resolve@npm:^1.1.5, resolve@npm:^1.22.11": + version: 1.22.12 + resolution: "resolve@npm:1.22.12" dependencies: + es-errors: "npm:^1.3.0" is-core-module: "npm:^2.16.1" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 10c0/f657191507530f2cbecb5815b1ee99b20741ea6ee02a59c57028e9ec4c2c8d7681afcc35febbd554ac0ded459db6f2d8153382c53a2f266cee2575e512674409 + checksum: 10c0/b16dc9b537c02e8c3388f7d3dcff9741d3071625f9a97ac1c885f2b0ca51e78df22328fb6d6ef214dd9101fb7cfc19aa2836fe3410402a94f3f7b8639c7149bf languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.1.5#optional!builtin, resolve@patch:resolve@npm%3A^1.22.10#optional!builtin, resolve@patch:resolve@npm%3A^1.22.11#optional!builtin": - version: 1.22.11 - resolution: "resolve@patch:resolve@npm%3A1.22.11#optional!builtin::version=1.22.11&hash=c3c19d" +"resolve@patch:resolve@npm%3A^1.1.5#optional!builtin, resolve@patch:resolve@npm%3A^1.22.11#optional!builtin": + version: 1.22.12 + resolution: "resolve@patch:resolve@npm%3A1.22.12#optional!builtin::version=1.22.12&hash=c3c19d" dependencies: + es-errors: "npm:^1.3.0" is-core-module: "npm:^2.16.1" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 10c0/ee5b182f2e37cb1165465e58c6abc797fec0a80b5ba3231607beb4677db0c9291ac010c47cf092b6daa2b7f518d69a0e21888e7e2b633f68d501a874212a8c63 + checksum: 10c0/fc6519984ae1f894d877c0060ba8b1f5ba3bc0e85a02f74e141929c118c23d74d9735619a9cc2965397387e514884245c65d72a40731dcb6cfc84c7bcdc8321e languageName: node linkType: hard @@ -17233,13 +16429,6 @@ __metadata: languageName: node linkType: hard -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe - languageName: node - linkType: hard - "retry@npm:^0.13.1": version: 0.13.1 resolution: "retry@npm:0.13.1" @@ -17295,27 +16484,27 @@ __metadata: languageName: node linkType: hard -"rolldown@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "rolldown@npm:1.0.0-rc.11" - dependencies: - "@oxc-project/types": "npm:=0.122.0" - "@rolldown/binding-android-arm64": "npm:1.0.0-rc.11" - "@rolldown/binding-darwin-arm64": "npm:1.0.0-rc.11" - "@rolldown/binding-darwin-x64": "npm:1.0.0-rc.11" - "@rolldown/binding-freebsd-x64": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-arm64-gnu": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-arm64-musl": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-ppc64-gnu": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-s390x-gnu": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-x64-gnu": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-x64-musl": "npm:1.0.0-rc.11" - "@rolldown/binding-openharmony-arm64": "npm:1.0.0-rc.11" - "@rolldown/binding-wasm32-wasi": "npm:1.0.0-rc.11" - "@rolldown/binding-win32-arm64-msvc": "npm:1.0.0-rc.11" - "@rolldown/binding-win32-x64-msvc": "npm:1.0.0-rc.11" - "@rolldown/pluginutils": "npm:1.0.0-rc.11" +"rolldown@npm:1.0.3": + version: 1.0.3 + resolution: "rolldown@npm:1.0.3" + dependencies: + "@oxc-project/types": "npm:=0.133.0" + "@rolldown/binding-android-arm64": "npm:1.0.3" + "@rolldown/binding-darwin-arm64": "npm:1.0.3" + "@rolldown/binding-darwin-x64": "npm:1.0.3" + "@rolldown/binding-freebsd-x64": "npm:1.0.3" + "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.3" + "@rolldown/binding-linux-arm64-gnu": "npm:1.0.3" + "@rolldown/binding-linux-arm64-musl": "npm:1.0.3" + "@rolldown/binding-linux-ppc64-gnu": "npm:1.0.3" + "@rolldown/binding-linux-s390x-gnu": "npm:1.0.3" + "@rolldown/binding-linux-x64-gnu": "npm:1.0.3" + "@rolldown/binding-linux-x64-musl": "npm:1.0.3" + "@rolldown/binding-openharmony-arm64": "npm:1.0.3" + "@rolldown/binding-wasm32-wasi": "npm:1.0.3" + "@rolldown/binding-win32-arm64-msvc": "npm:1.0.3" + "@rolldown/binding-win32-x64-msvc": "npm:1.0.3" + "@rolldown/pluginutils": "npm:^1.0.0" dependenciesMeta: "@rolldown/binding-android-arm64": optional: true @@ -17348,66 +16537,14 @@ __metadata: "@rolldown/binding-win32-x64-msvc": optional: true bin: - rolldown: bin/cli.mjs - checksum: 10c0/f92457aa26dac614bbaa92079d05c6a4819054468b46b2f46f68bae4bf42dc2c840a4d89be4ffa2a5821a63cd46157fa167a93e1f0b6671f89c16e3da8e2dbf3 - languageName: node - linkType: hard - -"rolldown@npm:1.0.0-rc.4": - version: 1.0.0-rc.4 - resolution: "rolldown@npm:1.0.0-rc.4" - dependencies: - "@oxc-project/types": "npm:=0.113.0" - "@rolldown/binding-android-arm64": "npm:1.0.0-rc.4" - "@rolldown/binding-darwin-arm64": "npm:1.0.0-rc.4" - "@rolldown/binding-darwin-x64": "npm:1.0.0-rc.4" - "@rolldown/binding-freebsd-x64": "npm:1.0.0-rc.4" - "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.0-rc.4" - "@rolldown/binding-linux-arm64-gnu": "npm:1.0.0-rc.4" - "@rolldown/binding-linux-arm64-musl": "npm:1.0.0-rc.4" - "@rolldown/binding-linux-x64-gnu": "npm:1.0.0-rc.4" - "@rolldown/binding-linux-x64-musl": "npm:1.0.0-rc.4" - "@rolldown/binding-openharmony-arm64": "npm:1.0.0-rc.4" - "@rolldown/binding-wasm32-wasi": "npm:1.0.0-rc.4" - "@rolldown/binding-win32-arm64-msvc": "npm:1.0.0-rc.4" - "@rolldown/binding-win32-x64-msvc": "npm:1.0.0-rc.4" - "@rolldown/pluginutils": "npm:1.0.0-rc.4" - dependenciesMeta: - "@rolldown/binding-android-arm64": - optional: true - "@rolldown/binding-darwin-arm64": - optional: true - "@rolldown/binding-darwin-x64": - optional: true - "@rolldown/binding-freebsd-x64": - optional: true - "@rolldown/binding-linux-arm-gnueabihf": - optional: true - "@rolldown/binding-linux-arm64-gnu": - optional: true - "@rolldown/binding-linux-arm64-musl": - optional: true - "@rolldown/binding-linux-x64-gnu": - optional: true - "@rolldown/binding-linux-x64-musl": - optional: true - "@rolldown/binding-openharmony-arm64": - optional: true - "@rolldown/binding-wasm32-wasi": - optional: true - "@rolldown/binding-win32-arm64-msvc": - optional: true - "@rolldown/binding-win32-x64-msvc": - optional: true - bin: - rolldown: bin/cli.mjs - checksum: 10c0/1336aedae71b5885036aeff6bbe9d6c58af205f72e8686edb2a3b27e6b4eb056f2f528b50373ad91567696369501f5b18eb99a926343bdb3012b7495962ddcfb + rolldown: ./bin/cli.mjs + checksum: 10c0/5f9dd47b7abf203b16bc600db68542f245e974c800e59ff50b76157d1dada1403657690435b036fabca88e93d13a67c31abe5cfaa6f61ce33717f61720204cdf languageName: node linkType: hard "rollup-plugin-dts@npm:^6.4.0": - version: 6.4.0 - resolution: "rollup-plugin-dts@npm:6.4.0" + version: 6.4.1 + resolution: "rollup-plugin-dts@npm:6.4.1" dependencies: "@babel/code-frame": "npm:^7.29.0" "@jridgewell/remapping": "npm:^2.3.5" @@ -17420,37 +16557,130 @@ __metadata: dependenciesMeta: "@babel/code-frame": optional: true - checksum: 10c0/421c5482ae90805ff2a92d6c6b124f15d00d375377742ae8c7c8d394fbddc33f52872ec8391c0219cba8178769bf5adc6dab29623ee6458d16ab0a6d69811587 + checksum: 10c0/23d51f4780c5878cb31a45103da961e2e1f81fb830d4b53114931060b58ee431e44c561c1215d253477ad884ba50223dd2586fee704763db9a454cb1c6b97a1d + languageName: node + linkType: hard + +"rollup@npm:4.60.2": + version: 4.60.2 + resolution: "rollup@npm:4.60.2" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.60.2" + "@rollup/rollup-android-arm64": "npm:4.60.2" + "@rollup/rollup-darwin-arm64": "npm:4.60.2" + "@rollup/rollup-darwin-x64": "npm:4.60.2" + "@rollup/rollup-freebsd-arm64": "npm:4.60.2" + "@rollup/rollup-freebsd-x64": "npm:4.60.2" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.60.2" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.60.2" + "@rollup/rollup-linux-arm64-gnu": "npm:4.60.2" + "@rollup/rollup-linux-arm64-musl": "npm:4.60.2" + "@rollup/rollup-linux-loong64-gnu": "npm:4.60.2" + "@rollup/rollup-linux-loong64-musl": "npm:4.60.2" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.60.2" + "@rollup/rollup-linux-ppc64-musl": "npm:4.60.2" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.60.2" + "@rollup/rollup-linux-riscv64-musl": "npm:4.60.2" + "@rollup/rollup-linux-s390x-gnu": "npm:4.60.2" + "@rollup/rollup-linux-x64-gnu": "npm:4.60.2" + "@rollup/rollup-linux-x64-musl": "npm:4.60.2" + "@rollup/rollup-openbsd-x64": "npm:4.60.2" + "@rollup/rollup-openharmony-arm64": "npm:4.60.2" + "@rollup/rollup-win32-arm64-msvc": "npm:4.60.2" + "@rollup/rollup-win32-ia32-msvc": "npm:4.60.2" + "@rollup/rollup-win32-x64-gnu": "npm:4.60.2" + "@rollup/rollup-win32-x64-msvc": "npm:4.60.2" + "@types/estree": "npm:1.0.8" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loong64-gnu": + optional: true + "@rollup/rollup-linux-loong64-musl": + optional: true + "@rollup/rollup-linux-ppc64-gnu": + optional: true + "@rollup/rollup-linux-ppc64-musl": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-openbsd-x64": + optional: true + "@rollup/rollup-openharmony-arm64": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-gnu": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/f67d6156fc5b895f33b929a4762392906d00fa5550f0a1f5e66519ab1c05d835aec5f201b4e748c29d1c87f024d3d9c4b0a2d1285668456db661d82b961d379c languageName: node linkType: hard "rollup@npm:^4.24.0, rollup@npm:^4.43.0": - version: 4.53.2 - resolution: "rollup@npm:4.53.2" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.53.2" - "@rollup/rollup-android-arm64": "npm:4.53.2" - "@rollup/rollup-darwin-arm64": "npm:4.53.2" - "@rollup/rollup-darwin-x64": "npm:4.53.2" - "@rollup/rollup-freebsd-arm64": "npm:4.53.2" - "@rollup/rollup-freebsd-x64": "npm:4.53.2" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.53.2" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.53.2" - "@rollup/rollup-linux-arm64-gnu": "npm:4.53.2" - "@rollup/rollup-linux-arm64-musl": "npm:4.53.2" - "@rollup/rollup-linux-loong64-gnu": "npm:4.53.2" - "@rollup/rollup-linux-ppc64-gnu": "npm:4.53.2" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.53.2" - "@rollup/rollup-linux-riscv64-musl": "npm:4.53.2" - "@rollup/rollup-linux-s390x-gnu": "npm:4.53.2" - "@rollup/rollup-linux-x64-gnu": "npm:4.53.2" - "@rollup/rollup-linux-x64-musl": "npm:4.53.2" - "@rollup/rollup-openharmony-arm64": "npm:4.53.2" - "@rollup/rollup-win32-arm64-msvc": "npm:4.53.2" - "@rollup/rollup-win32-ia32-msvc": "npm:4.53.2" - "@rollup/rollup-win32-x64-gnu": "npm:4.53.2" - "@rollup/rollup-win32-x64-msvc": "npm:4.53.2" - "@types/estree": "npm:1.0.8" + version: 4.61.1 + resolution: "rollup@npm:4.61.1" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.61.1" + "@rollup/rollup-android-arm64": "npm:4.61.1" + "@rollup/rollup-darwin-arm64": "npm:4.61.1" + "@rollup/rollup-darwin-x64": "npm:4.61.1" + "@rollup/rollup-freebsd-arm64": "npm:4.61.1" + "@rollup/rollup-freebsd-x64": "npm:4.61.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.61.1" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.61.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.61.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.61.1" + "@rollup/rollup-linux-loong64-gnu": "npm:4.61.1" + "@rollup/rollup-linux-loong64-musl": "npm:4.61.1" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.61.1" + "@rollup/rollup-linux-ppc64-musl": "npm:4.61.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.61.1" + "@rollup/rollup-linux-riscv64-musl": "npm:4.61.1" + "@rollup/rollup-linux-s390x-gnu": "npm:4.61.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.61.1" + "@rollup/rollup-linux-x64-musl": "npm:4.61.1" + "@rollup/rollup-openbsd-x64": "npm:4.61.1" + "@rollup/rollup-openharmony-arm64": "npm:4.61.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.61.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.61.1" + "@rollup/rollup-win32-x64-gnu": "npm:4.61.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.61.1" + "@types/estree": "npm:1.0.9" fsevents: "npm:~2.3.2" dependenciesMeta: "@rollup/rollup-android-arm-eabi": @@ -17475,8 +16705,12 @@ __metadata: optional: true "@rollup/rollup-linux-loong64-gnu": optional: true + "@rollup/rollup-linux-loong64-musl": + optional: true "@rollup/rollup-linux-ppc64-gnu": optional: true + "@rollup/rollup-linux-ppc64-musl": + optional: true "@rollup/rollup-linux-riscv64-gnu": optional: true "@rollup/rollup-linux-riscv64-musl": @@ -17487,6 +16721,8 @@ __metadata: optional: true "@rollup/rollup-linux-x64-musl": optional: true + "@rollup/rollup-openbsd-x64": + optional: true "@rollup/rollup-openharmony-arm64": optional: true "@rollup/rollup-win32-arm64-msvc": @@ -17501,7 +16737,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10c0/427216da71c1ce7fefb0bef75f94c301afd858ac27e35898e098c2da5977325fa54c2edda867caf9675c8abfa8d8d94efa99c482fa04f5cd91f3a740112d4f4f + checksum: 10c0/6f35736125f3c28c5d8ce1c89c9653b282833b93f60fe29fcc20169bac46579b4d4bcfcb2bfb7e36dcfd4a7bbd6d84e4adf58c2bf9e6dbb4a3c1ed5c932ba8c6 languageName: node linkType: hard @@ -17550,7 +16786,7 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0": +"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 @@ -17587,17 +16823,17 @@ __metadata: resolution: "sanity-app-esm@workspace:examples/custom-webpack/sanity-app-esm" dependencies: "@angular-builders/custom-webpack": "workspace:*" - "@angular-devkit/build-angular": "npm:21.2.14" - "@angular/animations": "npm:21.2.16" - "@angular/cli": "npm:21.2.14" - "@angular/common": "npm:21.2.16" - "@angular/compiler": "npm:21.2.16" - "@angular/compiler-cli": "npm:21.2.16" - "@angular/core": "npm:21.2.16" - "@angular/forms": "npm:21.2.16" - "@angular/platform-browser": "npm:21.2.16" - "@angular/platform-browser-dynamic": "npm:21.2.16" - "@angular/router": "npm:21.2.16" + "@angular-devkit/build-angular": "npm:22.0.0" + "@angular/animations": "npm:22.0.0" + "@angular/cli": "npm:22.0.0" + "@angular/common": "npm:22.0.0" + "@angular/compiler": "npm:22.0.0" + "@angular/compiler-cli": "npm:22.0.0" + "@angular/core": "npm:22.0.0" + "@angular/forms": "npm:22.0.0" + "@angular/platform-browser": "npm:22.0.0" + "@angular/platform-browser-dynamic": "npm:22.0.0" + "@angular/router": "npm:22.0.0" "@cypress/schematic": "npm:5.0.0" "@types/jasmine": "npm:6.0.0" "@types/node": "npm:24.13.1" @@ -17608,10 +16844,10 @@ __metadata: karma-coverage: "npm:2.2.1" karma-jasmine: "npm:5.1.0" karma-jasmine-html-reporter: "npm:2.2.0" - puppeteer: "npm:25.1.0" + puppeteer: "npm:24.43.1" rxjs: "npm:7.8.2" tslib: "npm:2.8.1" - typescript: "npm:5.9.3" + typescript: "npm:6.0.3" zone.js: "npm:0.16.2" languageName: unknown linkType: soft @@ -17621,23 +16857,23 @@ __metadata: resolution: "sanity-app@workspace:examples/custom-webpack/sanity-app" dependencies: "@angular-builders/custom-webpack": "workspace:*" - "@angular-devkit/build-angular": "npm:21.2.14" - "@angular-eslint/builder": "npm:21.4.0" - "@angular/animations": "npm:21.2.16" - "@angular/cli": "npm:21.2.14" - "@angular/common": "npm:21.2.16" - "@angular/compiler": "npm:21.2.16" - "@angular/compiler-cli": "npm:21.2.16" - "@angular/core": "npm:21.2.16" - "@angular/forms": "npm:21.2.16" - "@angular/language-service": "npm:21.2.16" - "@angular/platform-browser": "npm:21.2.16" - "@angular/platform-browser-dynamic": "npm:21.2.16" - "@angular/router": "npm:21.2.16" + "@angular-devkit/build-angular": "npm:22.0.0" + "@angular-eslint/builder": "npm:22.0.0" + "@angular/animations": "npm:22.0.0" + "@angular/cli": "npm:22.0.0" + "@angular/common": "npm:22.0.0" + "@angular/compiler": "npm:22.0.0" + "@angular/compiler-cli": "npm:22.0.0" + "@angular/core": "npm:22.0.0" + "@angular/forms": "npm:22.0.0" + "@angular/language-service": "npm:22.0.0" + "@angular/platform-browser": "npm:22.0.0" + "@angular/platform-browser-dynamic": "npm:22.0.0" + "@angular/router": "npm:22.0.0" "@eslint/js": "npm:10.0.1" "@types/jasmine": "npm:6.0.0" "@types/node": "npm:24.13.1" - angular-eslint: "npm:21.4.0" + angular-eslint: "npm:22.0.0" cypress: "npm:15.16.0" eslint: "npm:10.4.1" jasmine-core: "npm:6.3.0" @@ -17648,10 +16884,9 @@ __metadata: karma-jasmine-html-reporter: "npm:2.2.0" puppeteer: "npm:25.1.0" rxjs: "npm:7.8.2" - ts-node: "npm:10.9.2" tslib: "npm:2.8.1" - typescript: "npm:5.9.3" - typescript-eslint: "npm:8.60.1" + typescript: "npm:6.0.3" + typescript-eslint: "npm:8.60.0" zone.js: "npm:0.16.2" languageName: unknown linkType: soft @@ -17661,31 +16896,30 @@ __metadata: resolution: "sanity-esbuild-app-esm@workspace:examples/custom-esbuild/sanity-esbuild-app-esm" dependencies: "@angular-builders/custom-esbuild": "workspace:*" - "@angular-devkit/build-angular": "npm:21.2.14" - "@angular-eslint/builder": "npm:21.4.0" - "@angular/animations": "npm:21.2.16" - "@angular/cli": "npm:21.2.14" - "@angular/common": "npm:21.2.16" - "@angular/compiler": "npm:21.2.16" - "@angular/compiler-cli": "npm:21.2.16" - "@angular/core": "npm:21.2.16" - "@angular/forms": "npm:21.2.16" - "@angular/language-service": "npm:21.2.16" - "@angular/platform-browser": "npm:21.2.16" - "@angular/platform-browser-dynamic": "npm:21.2.16" - "@angular/router": "npm:21.2.16" + "@angular-devkit/build-angular": "npm:22.0.0" + "@angular-eslint/builder": "npm:22.0.0" + "@angular/animations": "npm:22.0.0" + "@angular/cli": "npm:22.0.0" + "@angular/common": "npm:22.0.0" + "@angular/compiler": "npm:22.0.0" + "@angular/compiler-cli": "npm:22.0.0" + "@angular/core": "npm:22.0.0" + "@angular/forms": "npm:22.0.0" + "@angular/language-service": "npm:22.0.0" + "@angular/platform-browser": "npm:22.0.0" + "@angular/platform-browser-dynamic": "npm:22.0.0" + "@angular/router": "npm:22.0.0" "@eslint/js": "npm:10.0.1" "@types/node": "npm:24.13.1" - angular-eslint: "npm:21.4.0" + angular-eslint: "npm:22.0.0" cypress: "npm:15.16.0" eslint: "npm:10.4.1" puppeteer: "npm:25.1.0" rxjs: "npm:7.8.2" - ts-node: "npm:10.9.2" tslib: "npm:2.8.1" - typescript: "npm:5.9.3" - typescript-eslint: "npm:8.60.1" - vitest: "npm:4.1.8" + typescript: "npm:6.0.3" + typescript-eslint: "npm:8.60.0" + vitest: "npm:4.1.7" zone.js: "npm:0.16.2" languageName: unknown linkType: soft @@ -17695,31 +16929,30 @@ __metadata: resolution: "sanity-esbuild-app@workspace:examples/custom-esbuild/sanity-esbuild-app" dependencies: "@angular-builders/custom-esbuild": "workspace:*" - "@angular-devkit/build-angular": "npm:21.2.14" - "@angular-eslint/builder": "npm:21.4.0" - "@angular/animations": "npm:21.2.16" - "@angular/cli": "npm:21.2.14" - "@angular/common": "npm:21.2.16" - "@angular/compiler": "npm:21.2.16" - "@angular/compiler-cli": "npm:21.2.16" - "@angular/core": "npm:21.2.16" - "@angular/forms": "npm:21.2.16" - "@angular/language-service": "npm:21.2.16" - "@angular/platform-browser": "npm:21.2.16" - "@angular/platform-browser-dynamic": "npm:21.2.16" - "@angular/router": "npm:21.2.16" + "@angular-devkit/build-angular": "npm:22.0.0" + "@angular-eslint/builder": "npm:22.0.0" + "@angular/animations": "npm:22.0.0" + "@angular/cli": "npm:22.0.0" + "@angular/common": "npm:22.0.0" + "@angular/compiler": "npm:22.0.0" + "@angular/compiler-cli": "npm:22.0.0" + "@angular/core": "npm:22.0.0" + "@angular/forms": "npm:22.0.0" + "@angular/language-service": "npm:22.0.0" + "@angular/platform-browser": "npm:22.0.0" + "@angular/platform-browser-dynamic": "npm:22.0.0" + "@angular/router": "npm:22.0.0" "@eslint/js": "npm:10.0.1" "@types/node": "npm:24.13.1" - angular-eslint: "npm:21.4.0" + angular-eslint: "npm:22.0.0" cypress: "npm:15.16.0" eslint: "npm:10.4.1" puppeteer: "npm:25.1.0" rxjs: "npm:7.8.2" - ts-node: "npm:10.9.2" tslib: "npm:2.8.1" - typescript: "npm:5.9.3" - typescript-eslint: "npm:8.60.1" - vitest: "npm:4.1.8" + typescript: "npm:6.0.3" + typescript-eslint: "npm:8.60.0" + vitest: "npm:4.1.7" zone.js: "npm:0.16.2" languageName: unknown linkType: soft @@ -17750,44 +16983,44 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.97.3": - version: 1.97.3 - resolution: "sass@npm:1.97.3" +"sass@npm:1.99.0": + version: 1.99.0 + resolution: "sass@npm:1.99.0" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^4.0.0" - immutable: "npm:^5.0.2" + immutable: "npm:^5.1.5" source-map-js: "npm:>=0.6.2 <2.0.0" dependenciesMeta: "@parcel/watcher": optional: true bin: sass: sass.js - checksum: 10c0/67f6b5d220f20c1c23a8b16dda5fd1c5d119ad5caf8195b185d553b5b239fb188a3787f04fc00171c62515f2c4e5e0eb5ad4992a80f8543428556883c1240ba3 + checksum: 10c0/83c54a8c6decb79fff50dd9500d7932cf1cb7c5d9be4bc42bd3d537402c37bbee062aea6efdbdf9fb0b8697b18177d60c72bf101872336b93b1c27a2dc3621e1 languageName: node linkType: hard "sass@npm:^1.81.0": - version: 1.93.3 - resolution: "sass@npm:1.93.3" + version: 1.100.0 + resolution: "sass@npm:1.100.0" dependencies: "@parcel/watcher": "npm:^2.4.1" - chokidar: "npm:^4.0.0" - immutable: "npm:^5.0.2" + chokidar: "npm:^5.0.0" + immutable: "npm:^5.1.5" source-map-js: "npm:>=0.6.2 <2.0.0" dependenciesMeta: "@parcel/watcher": optional: true bin: sass: sass.js - checksum: 10c0/b9facc64de10c9d1514272c1dcbb48ca99d5f591a1cd43fd27d641275d9d95948f1299107ab5b309e2abb552667cca84a38a1a3df5116eb72eba4144bf850b6a + checksum: 10c0/e2aab47c87b69d2d4f8e48fa665138548069f56a7fd0fc4e15c9bde888b715798e49d33436e873918a8849ca3cc6c141a68618f58e2f3b2e6ec179cc309ca622 languageName: node linkType: hard "sax@npm:^1.2.4": - version: 1.4.3 - resolution: "sax@npm:1.4.3" - checksum: 10c0/45bba07561d93f184a8686e1a543418ced8c844b994fbe45cc49d5cd2fc8ac7ec949dae38565e35e388ad0cca2b75997a29b6857c927bf6553da3f80ed0e4e62 + version: 1.6.0 + resolution: "sax@npm:1.6.0" + checksum: 10c0/e5593f4a91eb25761a688c4d96902e4e95a0dd6017bc65146b6f21236e3d715cf893333b76bc758923c9574c2fb5a7a76c3a81e96ea15432f2624f906c027c1e languageName: node linkType: hard @@ -17829,7 +17062,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.7.4, semver@npm:^7.6.3": +"semver@npm:7.7.4": version: 7.7.4 resolution: "semver@npm:7.7.4" bin: @@ -17838,6 +17071,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:7.8.0": + version: 7.8.0 + resolution: "semver@npm:7.8.0" + bin: + semver: bin/semver.js + checksum: 10c0/8f096ca9b80ffd47b308d03f9ce8c873e27e2983f36023c559cdc92c51e8433fc23ebbfe57ec9623fc155636a6961ee989501099841ae4bb1babc8d2b3f048cd + languageName: node + linkType: hard + "semver@npm:^5.5.0, semver@npm:^5.6.0": version: 5.7.2 resolution: "semver@npm:5.7.2" @@ -17856,49 +17098,31 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2, semver@npm:^7.7.2, semver@npm:^7.7.3": - version: 7.7.3 - resolution: "semver@npm:7.7.3" - bin: - semver: bin/semver.js - checksum: 10c0/4afe5c986567db82f44c8c6faef8fe9df2a9b1d98098fc1721f57c696c4c21cebd572f297fc21002f81889492345b8470473bc6f4aff5fb032a6ea59ea2bc45e - languageName: node - linkType: hard - -"semver@npm:^7.8.0": - version: 7.8.0 - resolution: "semver@npm:7.8.0" - bin: - semver: bin/semver.js - checksum: 10c0/8f096ca9b80ffd47b308d03f9ce8c873e27e2983f36023c559cdc92c51e8433fc23ebbfe57ec9623fc155636a6961ee989501099841ae4bb1babc8d2b3f048cd - languageName: node - linkType: hard - -"semver@npm:^7.8.1": - version: 7.8.1 - resolution: "semver@npm:7.8.1" +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2, semver@npm:^7.6.3, semver@npm:^7.7.2, semver@npm:^7.7.3, semver@npm:^7.7.4, semver@npm:^7.8.0, semver@npm:^7.8.1": + version: 7.8.3 + resolution: "semver@npm:7.8.3" bin: semver: bin/semver.js - checksum: 10c0/92d6871d6347e1f99d0ba396a70f2545ccf2a032cda3d378fa0699edf7506b5c6d266aed55c8b88e72bd91a30d2351e4f39db479375374430fcdc4b58f4e3c1a + checksum: 10c0/06d96d5b5c03acd8b0dceeae458e5d4b4ea2b6c16a2b0dfa88a0f19b91d19be1a4a192c7abfa825218c4c36c087d831b928c27d5b79a622e370bd12e95578a99 languageName: node linkType: hard "send@npm:^1.1.0, send@npm:^1.2.0": - version: 1.2.0 - resolution: "send@npm:1.2.0" + version: 1.2.1 + resolution: "send@npm:1.2.1" dependencies: - debug: "npm:^4.3.5" + debug: "npm:^4.4.3" encodeurl: "npm:^2.0.0" escape-html: "npm:^1.0.3" etag: "npm:^1.8.1" fresh: "npm:^2.0.0" - http-errors: "npm:^2.0.0" - mime-types: "npm:^3.0.1" + http-errors: "npm:^2.0.1" + mime-types: "npm:^3.0.2" ms: "npm:^2.1.3" on-finished: "npm:^2.4.1" range-parser: "npm:^1.2.1" - statuses: "npm:^2.0.1" - checksum: 10c0/531bcfb5616948d3468d95a1fd0adaeb0c20818ba4a500f439b800ca2117971489e02074ce32796fd64a6772ea3e7235fe0583d8241dbd37a053dc3378eff9a5 + statuses: "npm:^2.0.2" + checksum: 10c0/fbbbbdc902a913d65605274be23f3d604065cfc3ee3d78bf9fc8af1dc9fc82667c50d3d657f5e601ac657bac9b396b50ee97bd29cd55436320cf1cddebdcec72 languageName: node linkType: hard @@ -17923,46 +17147,37 @@ __metadata: languageName: node linkType: hard -"serialize-javascript@npm:^6.0.2": - version: 6.0.2 - resolution: "serialize-javascript@npm:6.0.2" - dependencies: - randombytes: "npm:^2.1.0" - checksum: 10c0/2dd09ef4b65a1289ba24a788b1423a035581bef60817bea1f01eda8e3bda623f86357665fe7ac1b50f6d4f583f97db9615b3f07b2a2e8cbcb75033965f771dd2 - languageName: node - linkType: hard - "serialize-javascript@npm:^7.0.3": - version: 7.0.4 - resolution: "serialize-javascript@npm:7.0.4" - checksum: 10c0/f3da6f994c41306fbfabb55eefe280a46da05592939a84b0d95c84e296c92ba9e6a3d86cf7bbd71e7a59e1cfcd8481745910af109bedbd3ed853b444d32f9ee9 + version: 7.0.5 + resolution: "serialize-javascript@npm:7.0.5" + checksum: 10c0/7b7818e5267f6d474ec7a56d36ba69dd712726a13eab37706ec94615fb7ca8945471f2b7fb0dc9dbe8c79c1930c1079d97f66f91315c8c8c2ca6c38898cec96f languageName: node linkType: hard "serve-index@npm:^1.9.1": - version: 1.9.1 - resolution: "serve-index@npm:1.9.1" + version: 1.9.2 + resolution: "serve-index@npm:1.9.2" dependencies: - accepts: "npm:~1.3.4" + accepts: "npm:~1.3.8" batch: "npm:0.6.1" debug: "npm:2.6.9" escape-html: "npm:~1.0.3" - http-errors: "npm:~1.6.2" - mime-types: "npm:~2.1.17" - parseurl: "npm:~1.3.2" - checksum: 10c0/a666471a24196f74371edf2c3c7bcdd82adbac52f600804508754b5296c3567588bf694258b19e0cb23a567acfa20d9721bfdaed3286007b81f9741ada8a3a9c + http-errors: "npm:~1.8.0" + mime-types: "npm:~2.1.35" + parseurl: "npm:~1.3.3" + checksum: 10c0/b4e48da75c9262cfcf6a4707748a33a127f6c3cd3a095782c22312c4915545b7695071fedc8f5717bae165e6e63053cd963847013b1f1e984213f07186f78a74 languageName: node linkType: hard "serve-static@npm:^2.2.0": - version: 2.2.0 - resolution: "serve-static@npm:2.2.0" + version: 2.2.1 + resolution: "serve-static@npm:2.2.1" dependencies: encodeurl: "npm:^2.0.0" escape-html: "npm:^1.0.3" parseurl: "npm:^1.3.3" send: "npm:^1.2.0" - checksum: 10c0/30e2ed1dbff1984836cfd0c65abf5d3f3f83bcd696c99d2d3c97edbd4e2a3ff4d3f87108a7d713640d290a7b6fe6c15ddcbc61165ab2eaad48ea8d3b52c7f913 + checksum: 10c0/37986096e8572e2dfaad35a3925fa8da0c0969f8814fd7788e84d4d388bc068cf0c06d1658509788e55bed942a6b6d040a8a267fa92bb9ffb1179f8bacde5fd7 languageName: node linkType: hard @@ -17999,13 +17214,6 @@ __metadata: languageName: node linkType: hard -"setprototypeof@npm:1.1.0": - version: 1.1.0 - resolution: "setprototypeof@npm:1.1.0" - checksum: 10c0/a77b20876689c6a89c3b42f0c3596a9cae02f90fc902570cbd97198e9e8240382086c9303ad043e88cee10f61eae19f1004e51d885395a1e9bf49f9ebed12872 - languageName: node - linkType: hard - "setprototypeof@npm:1.2.0, setprototypeof@npm:~1.2.0": version: 1.2.0 resolution: "setprototypeof@npm:1.2.0" @@ -18061,20 +17269,20 @@ __metadata: languageName: node linkType: hard -"shell-quote@npm:^1.8.3": - version: 1.8.3 - resolution: "shell-quote@npm:1.8.3" - checksum: 10c0/bee87c34e1e986cfb4c30846b8e6327d18874f10b535699866f368ade11ea4ee45433d97bf5eada22c4320c27df79c3a6a7eb1bf3ecfc47f2c997d9e5e2672fd +"shell-quote@npm:^1.8.4": + version: 1.8.4 + resolution: "shell-quote@npm:1.8.4" + checksum: 10c0/86c93678bc394cb81f5ddcdc87df9c95d279ef9652775cd1cd1eed361404169a8d8cbaacaeed232ab09919e36ee1e5363863570390d78571f8c22b7f6312fb40 languageName: node linkType: hard "side-channel-list@npm:^1.0.0": - version: 1.0.0 - resolution: "side-channel-list@npm:1.0.0" + version: 1.0.1 + resolution: "side-channel-list@npm:1.0.1" dependencies: es-errors: "npm:^1.3.0" - object-inspect: "npm:^1.13.3" - checksum: 10c0/644f4ac893456c9490ff388bf78aea9d333d5e5bfc64cfb84be8f04bf31ddc111a8d4b83b85d7e7e8a7b845bc185a9ad02c052d20e086983cf59f0be517d9b3d + object-inspect: "npm:^1.13.4" + checksum: 10c0/d346c787fd2f9f1c2fdea14f00e8250118db0e7596d85a6cb9faa75f105d31a73a8f7a341c93d7df2a2429098c3d37a77bd3be9e88c37094b8c01807bc77c7a2 languageName: node linkType: hard @@ -18103,7 +17311,7 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.6, side-channel@npm:^1.1.0": +"side-channel@npm:^1.1.0": version: 1.1.0 resolution: "side-channel@npm:1.1.0" dependencies: @@ -18138,16 +17346,16 @@ __metadata: linkType: hard "sigstore@npm:^4.0.0": - version: 4.0.0 - resolution: "sigstore@npm:4.0.0" + version: 4.1.1 + resolution: "sigstore@npm:4.1.1" dependencies: "@sigstore/bundle": "npm:^4.0.0" - "@sigstore/core": "npm:^3.0.0" + "@sigstore/core": "npm:^3.2.1" "@sigstore/protobuf-specs": "npm:^0.5.0" - "@sigstore/sign": "npm:^4.0.0" - "@sigstore/tuf": "npm:^4.0.0" - "@sigstore/verify": "npm:^3.0.0" - checksum: 10c0/918130a3ccb254c709692bb9c1c7eb3c98632bc90f7f3a7416695fff5be6abdd41d74ba6bf6920bc4a39b4fc4f32ed1fbcdf4fa38b45b4ef34e5c824fa8f91fa + "@sigstore/sign": "npm:^4.1.1" + "@sigstore/tuf": "npm:^4.0.2" + "@sigstore/verify": "npm:^3.1.1" + checksum: 10c0/8ebe0c2a7cb3cf9ed9fb775636ab2ae364cbdea9360ea256ab003d83b83dd5eeda8dd899cffcd3853fe711425c481fab2a74246772d75e3ecb9a9483f6700289 languageName: node linkType: hard @@ -18156,23 +17364,23 @@ __metadata: resolution: "simple-app@workspace:examples/jest/simple-app" dependencies: "@angular-builders/jest": "workspace:*" - "@angular-devkit/build-angular": "npm:21.2.14" - "@angular-eslint/builder": "npm:21.4.0" - "@angular/animations": "npm:21.2.16" - "@angular/cli": "npm:21.2.14" - "@angular/common": "npm:21.2.16" - "@angular/compiler": "npm:21.2.16" - "@angular/compiler-cli": "npm:21.2.16" - "@angular/core": "npm:21.2.16" - "@angular/forms": "npm:21.2.16" - "@angular/language-service": "npm:21.2.16" - "@angular/platform-browser": "npm:21.2.16" - "@angular/platform-browser-dynamic": "npm:21.2.16" - "@angular/router": "npm:21.2.16" + "@angular-devkit/build-angular": "npm:22.0.0" + "@angular-eslint/builder": "npm:22.0.0" + "@angular/animations": "npm:22.0.0" + "@angular/cli": "npm:22.0.0" + "@angular/common": "npm:22.0.0" + "@angular/compiler": "npm:22.0.0" + "@angular/compiler-cli": "npm:22.0.0" + "@angular/core": "npm:22.0.0" + "@angular/forms": "npm:22.0.0" + "@angular/language-service": "npm:22.0.0" + "@angular/platform-browser": "npm:22.0.0" + "@angular/platform-browser-dynamic": "npm:22.0.0" + "@angular/router": "npm:22.0.0" "@eslint/js": "npm:10.0.1" "@types/jasmine": "npm:6.0.0" "@types/node": "npm:24.13.1" - angular-eslint: "npm:21.4.0" + angular-eslint: "npm:22.0.0" cypress: "npm:15.16.0" eslint: "npm:10.4.1" jasmine-core: "npm:6.3.0" @@ -18181,10 +17389,9 @@ __metadata: jest-junit: "npm:17.0.0" jsdom: "npm:29.1.1" rxjs: "npm:7.8.2" - ts-node: "npm:10.9.2" tslib: "npm:2.8.1" - typescript: "npm:5.9.3" - typescript-eslint: "npm:8.60.1" + typescript: "npm:6.0.3" + typescript-eslint: "npm:8.60.0" zone.js: "npm:0.16.2" languageName: unknown linkType: soft @@ -18231,37 +17438,37 @@ __metadata: linkType: hard "socket.io-adapter@npm:~2.5.2": - version: 2.5.5 - resolution: "socket.io-adapter@npm:2.5.5" + version: 2.5.7 + resolution: "socket.io-adapter@npm:2.5.7" dependencies: - debug: "npm:~4.3.4" - ws: "npm:~8.17.1" - checksum: 10c0/04a5a2a9c4399d1b6597c2afc4492ab1e73430cc124ab02b09e948eabf341180b3866e2b61b5084cb899beb68a4db7c328c29bda5efb9207671b5cb0bc6de44e + debug: "npm:~4.4.1" + ws: "npm:~8.20.1" + checksum: 10c0/c911e18e2a8a1cf30117d3df7f6309a6d1c802cc3cc1115606d75e0928ea270978800725d4557526bfb1853ccaa2bc33b0d221a361cd2653bdd00b7e313ffab0 languageName: node linkType: hard "socket.io-parser@npm:~4.2.4": - version: 4.2.4 - resolution: "socket.io-parser@npm:4.2.4" + version: 4.2.6 + resolution: "socket.io-parser@npm:4.2.6" dependencies: "@socket.io/component-emitter": "npm:~3.1.0" - debug: "npm:~4.3.1" - checksum: 10c0/9383b30358fde4a801ea4ec5e6860915c0389a091321f1c1f41506618b5cf7cd685d0a31c587467a0c4ee99ef98c2b99fb87911f9dfb329716c43b587f29ca48 + debug: "npm:~4.4.1" + checksum: 10c0/ba0a0b541b0a8e9d02b45c04c4c93a02331be5ea3478073c65bb9ff87032f12469c9adb309728eb90c0a352618d645ab88999c167a11c783cac861d7fd35c9d1 languageName: node linkType: hard "socket.io@npm:^4.7.2": - version: 4.8.1 - resolution: "socket.io@npm:4.8.1" + version: 4.8.3 + resolution: "socket.io@npm:4.8.3" dependencies: accepts: "npm:~1.3.4" base64id: "npm:~2.0.0" cors: "npm:~2.8.5" - debug: "npm:~4.3.2" + debug: "npm:~4.4.1" engine.io: "npm:~6.6.0" socket.io-adapter: "npm:~2.5.2" socket.io-parser: "npm:~4.2.4" - checksum: 10c0/acf931a2bb235be96433b71da3d8addc63eeeaa8acabd33dc8d64e12287390a45f1e9f389a73cf7dc336961cd491679741b7a016048325c596835abbcc017ca9 + checksum: 10c0/1f7c4118cdbcb346e63db9d8fd657c3dc5caf148404762ed98ac14c4e7b74984a65fe51657bfe1696adcf7c168d1a3aad4a26b52864ce8491556f38218598f0b languageName: node linkType: hard @@ -18276,7 +17483,7 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^8.0.3": +"socks-proxy-agent@npm:^8.0.3, socks-proxy-agent@npm:^8.0.5": version: 8.0.5 resolution: "socks-proxy-agent@npm:8.0.5" dependencies: @@ -18288,12 +17495,12 @@ __metadata: linkType: hard "socks@npm:^2.8.3": - version: 2.8.7 - resolution: "socks@npm:2.8.7" + version: 2.8.9 + resolution: "socks@npm:2.8.9" dependencies: - ip-address: "npm:^10.0.1" + ip-address: "npm:^10.1.1" smart-buffer: "npm:^4.2.0" - checksum: 10c0/2805a43a1c4bcf9ebf6e018268d87b32b32b06fbbc1f9282573583acc155860dc361500f89c73bfbb157caa1b4ac78059eac0ef15d1811eb0ca75e0bdadbc9d2 + checksum: 10c0/2d4350c31142b0931eb1758825b426bcbf4bfb5eed682ca48bc46dc9e7d1930ec366ea574ad49fc6c1fd9e9e17ce243be0ef13e31fc4b0319d9093f1fb19743c languageName: node linkType: hard @@ -18306,7 +17513,7 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.1": +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.1": version: 1.2.1 resolution: "source-map-js@npm:1.2.1" checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf @@ -18404,9 +17611,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.22 - resolution: "spdx-license-ids@npm:3.0.22" - checksum: 10c0/4a85e44c2ccfc06eebe63239193f526508ebec1abc7cf7bca8ee43923755636234395447c2c87f40fb672cf580a9c8e684513a676bfb2da3d38a4983684bbb38 + version: 3.0.23 + resolution: "spdx-license-ids@npm:3.0.23" + checksum: 10c0/8495620f6f2a237749cce922ea2d593a66f7885c301b1a0f5542183e7041182f27f616a8f13345cefdea0c9b3e0899328e0aa8cec100cf4f3fac4bb3bd975515 languageName: node linkType: hard @@ -18465,25 +17672,7 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^12.0.0": - version: 12.0.0 - resolution: "ssri@npm:12.0.0" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/caddd5f544b2006e88fa6b0124d8d7b28208b83c72d7672d5ade44d794525d23b540f3396108c4eb9280dcb7c01f0bef50682f5b4b2c34291f7c5e211fd1417d - languageName: node - linkType: hard - -"ssri@npm:^13.0.0": - version: 13.0.0 - resolution: "ssri@npm:13.0.0" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/405f3a531cd98b013cecb355d63555dca42fd12c7bc6671738aaa9a82882ff41cdf0ef9a2b734ca4f9a760338f114c29d01d9238a65db3ccac27929bd6e6d4b2 - languageName: node - linkType: hard - -"ssri@npm:^13.0.1": +"ssri@npm:^13.0.0, ssri@npm:^13.0.1": version: 13.0.1 resolution: "ssri@npm:13.0.1" dependencies: @@ -18539,21 +17728,14 @@ __metadata: languageName: node linkType: hard -"statuses@npm:2.0.1": - version: 2.0.1 - resolution: "statuses@npm:2.0.1" - checksum: 10c0/34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0 - languageName: node - linkType: hard - -"statuses@npm:>= 1.4.0 < 2, statuses@npm:~1.5.0": +"statuses@npm:>= 1.5.0 < 2, statuses@npm:~1.5.0": version: 1.5.0 resolution: "statuses@npm:1.5.0" checksum: 10c0/e433900956357b3efd79b1c547da4d291799ac836960c016d10a98f6a810b1b5c0dcc13b5a7aa609a58239b5190e1ea176ad9221c2157d2fd1c747393e6b2940 languageName: node linkType: hard -"statuses@npm:^2.0.1, statuses@npm:~2.0.1, statuses@npm:~2.0.2": +"statuses@npm:^2.0.1, statuses@npm:^2.0.2, statuses@npm:~2.0.1, statuses@npm:~2.0.2": version: 2.0.2 resolution: "statuses@npm:2.0.2" checksum: 10c0/a9947d98ad60d01f6b26727570f3bcceb6c8fa789da64fe6889908fe2e294d57503b14bf2b5af7605c2d36647259e856635cd4c49eab41667658ec9d0080ec3f @@ -18561,23 +17743,16 @@ __metadata: linkType: hard "std-env@npm:^4.0.0-rc.1": - version: 4.0.0 - resolution: "std-env@npm:4.0.0" - checksum: 10c0/63b1716eae27947adde49e21b7225a0f75fb2c3d410273ae9de8333c07c7d5fc7a0628ae4c8af6b4b49b4274ed46c2bf118ed69b64f1261c9d8213d76ed1c16c - languageName: node - linkType: hard - -"stdin-discarder@npm:^0.2.2": - version: 0.2.2 - resolution: "stdin-discarder@npm:0.2.2" - checksum: 10c0/c78375e82e956d7a64be6e63c809c7f058f5303efcaf62ea48350af072bacdb99c06cba39209b45a071c1acbd49116af30df1df9abb448df78a6005b72f10537 + version: 4.1.0 + resolution: "std-env@npm:4.1.0" + checksum: 10c0/2e14b6b490db34cb969a48d9cf7c35bca4a47653914aac2814221baae7b867a5b15940d133625c391621971f98cd2266a5dc7036669960e883f1081db2a56558 languageName: node linkType: hard -"stdin-discarder@npm:^0.3.1": - version: 0.3.1 - resolution: "stdin-discarder@npm:0.3.1" - checksum: 10c0/2fda9b230e72f092a933dbc755fadbfd53b721b103acddd06c2642a81793565f1673f249dc54fc0c63b141f222e9d09494cdf4db6ab7998f54e0b0be8526cba5 +"stdin-discarder@npm:^0.3.2": + version: 0.3.2 + resolution: "stdin-discarder@npm:0.3.2" + checksum: 10c0/5dbaba9efbcb447a4450d5ae19794641ea9166abe96dc4b5547a109db1bb6e8bdb17bbe1029e02ca8d9d8ee996b7c7cbcce12b12c18c121871cd4f574292381a languageName: node linkType: hard @@ -18608,6 +17783,17 @@ __metadata: languageName: node linkType: hard +"streamx@npm:^2.12.5, streamx@npm:^2.15.0, streamx@npm:^2.25.0": + version: 2.27.0 + resolution: "streamx@npm:2.27.0" + dependencies: + events-universal: "npm:^1.0.0" + fast-fifo: "npm:^1.3.2" + text-decoder: "npm:^1.1.0" + checksum: 10c0/8746bbf0e735067ccafb2b95198fbdcd53aaed0f610d0406b5aa1b321c75fac80dee928e902684b2d3fd3435f55cdd9da6b1a1e36be41a5903e8e4d58602468a + languageName: node + linkType: hard + "string-argv@npm:^0.3.2": version: 0.3.2 resolution: "string-argv@npm:0.3.2" @@ -18689,17 +17875,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:^8.0.0, string-width@npm:^8.1.0": - version: 8.1.0 - resolution: "string-width@npm:8.1.0" - dependencies: - get-east-asian-width: "npm:^1.3.0" - strip-ansi: "npm:^7.1.0" - checksum: 10c0/749b5d0dab2532b4b6b801064230f4da850f57b3891287023117ab63a464ad79dd208f42f793458f48f3ad121fe2e1f01dd525ff27ead957ed9f205e27406593 - languageName: node - linkType: hard - -"string-width@npm:^8.2.0": +"string-width@npm:^8.1.0, string-width@npm:^8.2.0": version: 8.2.1 resolution: "string-width@npm:8.2.1" dependencies: @@ -18718,6 +17894,13 @@ __metadata: languageName: node linkType: hard +"string_decoder@npm:~0.10.x": + version: 0.10.31 + resolution: "string_decoder@npm:0.10.31" + checksum: 10c0/1c628d78f974aa7539c496029f48e7019acc32487fc695464f9d6bdfec98edd7d933a06b3216bc2016918f6e75074c611d84430a53cb0e43071597d6c1ac5e25 + languageName: node + linkType: hard + "string_decoder@npm:~1.0.0": version: 1.0.3 resolution: "string_decoder@npm:1.0.3" @@ -18764,18 +17947,11 @@ __metadata: linkType: hard "strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0, strip-ansi@npm:^7.1.2": - version: 7.1.2 - resolution: "strip-ansi@npm:7.1.2" + version: 7.2.0 + resolution: "strip-ansi@npm:7.2.0" dependencies: - ansi-regex: "npm:^6.0.1" - checksum: 10c0/0d6d7a023de33368fd042aab0bf48f4f4077abdfd60e5393e73c7c411e85e1b3a83507c11af2e656188511475776215df9ca589b4da2295c9455cc399ce1858b - languageName: node - linkType: hard - -"strip-bom@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-bom@npm:3.0.0" - checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1 + ansi-regex: "npm:^6.2.2" + checksum: 10c0/544d13b7582f8254811ea97db202f519e189e59d35740c46095897e254e4f1aa9fe1524a83ad6bc5ad67d4dd6c0281d2e0219ed62b880a6238a16a17d375f221 languageName: node linkType: hard @@ -18849,20 +18025,20 @@ __metadata: linkType: hard "synckit@npm:^0.11.8": - version: 0.11.11 - resolution: "synckit@npm:0.11.11" + version: 0.11.13 + resolution: "synckit@npm:0.11.13" dependencies: - "@pkgr/core": "npm:^0.2.9" - checksum: 10c0/f0761495953d12d94a86edf6326b3a565496c72f9b94c02549b6961fb4d999f4ca316ce6b3eb8ed2e4bfc5056a8de65cda0bd03a233333a35221cd2fdc0e196b + "@pkgr/core": "npm:^0.3.6" + checksum: 10c0/5a6c19f4f79045aaa7994106401bff6dbe7cca23a6d0a0723ff14eb8b1bebeb4a71729118f6914905598e304ea2fa13509885e11ba07d92e7cb68a06740cb328 languageName: node linkType: hard "systeminformation@npm:^5.31.1": - version: 5.31.1 - resolution: "systeminformation@npm:5.31.1" + version: 5.31.7 + resolution: "systeminformation@npm:5.31.7" bin: systeminformation: lib/cli.js - checksum: 10c0/66dc6a5e696c3ea8c191c32163a1e426d066a73f6084fc538e86d7a148f19ff64449589f06f1f74ec0183cfd0c57e3df565d181bc352fb0ba268d6a6435de7fb + checksum: 10c0/0da74c1a74c3db401112abc7b5703aa2f42877558d8db9ce0a08eff7eb2b1a2c9415637adab42a17a25e4bb2075eb92fbba43283fb7ebdb701d9dd25d5c8a531 conditions: (os=darwin | os=linux | os=win32 | os=freebsd | os=openbsd | os=netbsd | os=sunos | os=android) languageName: node linkType: hard @@ -18880,27 +18056,43 @@ __metadata: languageName: node linkType: hard -"tapable@npm:^2.0.0, tapable@npm:^2.2.1, tapable@npm:^2.3.0": - version: 2.3.0 - resolution: "tapable@npm:2.3.0" - checksum: 10c0/cb9d67cc2c6a74dedc812ef3085d9d681edd2c1fa18e4aef57a3c0605fdbe44e6b8ea00bd9ef21bc74dd45314e39d31227aa031ebf2f5e38164df514136f2681 +"tapable@npm:^2.0.0, tapable@npm:^2.2.1, tapable@npm:^2.3.0, tapable@npm:^2.3.3": + version: 2.3.3 + resolution: "tapable@npm:2.3.3" + checksum: 10c0/47992e861053f861154e92fb4a98ac4ab47b6463717e60792dd1e8c755da0c4964cd8bb68c308a9066d6da89000b6310457b4d5d985c30de4ccc29066068cc17 languageName: node linkType: hard -"tar@npm:^7.4.3, tar@npm:^7.5.2": - version: 7.5.2 - resolution: "tar@npm:7.5.2" +"tar-fs@npm:^3.1.1": + version: 3.1.2 + resolution: "tar-fs@npm:3.1.2" dependencies: - "@isaacs/fs-minipass": "npm:^4.0.0" - chownr: "npm:^3.0.0" - minipass: "npm:^7.1.2" - minizlib: "npm:^3.1.0" - yallist: "npm:^5.0.0" - checksum: 10c0/a7d8b801139b52f93a7e34830db0de54c5aa45487c7cb551f6f3d44a112c67f1cb8ffdae856b05fd4f17b1749911f1c26f1e3a23bbe0279e17fd96077f13f467 + bare-fs: "npm:^4.0.1" + bare-path: "npm:^3.0.0" + pump: "npm:^3.0.0" + tar-stream: "npm:^3.1.5" + dependenciesMeta: + bare-fs: + optional: true + bare-path: + optional: true + checksum: 10c0/9dcbbbef9cdfc27f47651fe679f15952a6a8e6b3c9761c4bf3f416ace41cf462fb6292519bd3e041cadfcc0b89043a6bdecb46ff19f770b6864b77dcde7bad46 + languageName: node + linkType: hard + +"tar-stream@npm:^3.1.5": + version: 3.2.0 + resolution: "tar-stream@npm:3.2.0" + dependencies: + b4a: "npm:^1.6.4" + bare-fs: "npm:^4.5.5" + fast-fifo: "npm:^1.2.0" + streamx: "npm:^2.15.0" + checksum: 10c0/8a06c915f93c9b0906e79867e36a9cfe197da4d41b72e89ec0de99577ae755505d14815c1346b70c2410aa09d3145c3e3af2ff5802b6af84990cdd6c60dbb997 languageName: node linkType: hard -"tar@npm:^7.5.16": +"tar@npm:^7.4.3, tar@npm:^7.5.16, tar@npm:^7.5.4": version: 7.5.16 resolution: "tar@npm:7.5.16" dependencies: @@ -18913,31 +18105,57 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.3.16": - version: 5.3.16 - resolution: "terser-webpack-plugin@npm:5.3.16" +"teex@npm:^1.0.1": + version: 1.0.1 + resolution: "teex@npm:1.0.1" + dependencies: + streamx: "npm:^2.12.5" + checksum: 10c0/8df9166c037ba694b49d32a49858e314c60e513d55ac5e084dbf1ddbb827c5fa43cc389a81e87684419c21283308e9d68bb068798189c767ec4c252f890b8a77 + languageName: node + linkType: hard + +"terser-webpack-plugin@npm:^5.3.17": + version: 5.6.1 + resolution: "terser-webpack-plugin@npm:5.6.1" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.25" jest-worker: "npm:^27.4.5" schema-utils: "npm:^4.3.0" - serialize-javascript: "npm:^6.0.2" terser: "npm:^5.31.1" peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: + "@minify-html/node": + optional: true "@swc/core": optional: true + "@swc/css": + optional: true + "@swc/html": + optional: true + clean-css: + optional: true + cssnano: + optional: true + csso: + optional: true esbuild: optional: true + html-minifier-terser: + optional: true + lightningcss: + optional: true + postcss: + optional: true uglify-js: optional: true - checksum: 10c0/39e37c5b3015c1a5354a3633f77235677bfa06eac2608ce26d258b1d1a74070a99910319a6f2f2c437eb61dc321f66434febe01d78e73fa96b4d4393b813f4cf + checksum: 10c0/841674dab9b58ee242a64a548f2797f83eca3debc010afb2aa1a4be7149e7195a6a546a746324803ba05f72d0c9dc4357e34f17e4b6d6c054bd49a0913c413b9 languageName: node linkType: hard -"terser@npm:5.46.0": - version: 5.46.0 - resolution: "terser@npm:5.46.0" +"terser@npm:5.46.2": + version: 5.46.2 + resolution: "terser@npm:5.46.2" dependencies: "@jridgewell/source-map": "npm:^0.3.3" acorn: "npm:^8.15.0" @@ -18945,13 +18163,13 @@ __metadata: source-map-support: "npm:~0.5.20" bin: terser: bin/terser - checksum: 10c0/93ad468f13187c4f66b609bbfc00a6aee752007779ca3157f2c1ee063697815748d6010fd449a16c30be33213748431d5f54cc0224ba6a3fbbf5acd3582a4356 + checksum: 10c0/476f1820160c42e6b2f611410115b00321c4666d421f12db87f13810f8789de45cb254e3ad5178650696d0ba6b706f5a0a239272255d6d1be95816c660f8cbbb languageName: node linkType: hard "terser@npm:^5.10.0, terser@npm:^5.31.1": - version: 5.44.1 - resolution: "terser@npm:5.44.1" + version: 5.48.0 + resolution: "terser@npm:5.48.0" dependencies: "@jridgewell/source-map": "npm:^0.3.3" acorn: "npm:^8.15.0" @@ -18959,7 +18177,7 @@ __metadata: source-map-support: "npm:~0.5.20" bin: terser: bin/terser - checksum: 10c0/ee7a76692cb39b1ed22c30ff366c33ff3c977d9bb769575338ff5664676168fcba59192fb5168ef80c7cd901ef5411a1b0351261f5eaa50decf0fc71f63bde75 + checksum: 10c0/d6ee713ea09a2b83b461ccbf1b76bd673a5090b3076ec13db7edc6d6470ab940d21c87b8d1ad82523b7cf02d9be07393fcdd334bde8f589e9bc3804da6fc32d2 languageName: node linkType: hard @@ -18984,12 +18202,21 @@ __metadata: languageName: node linkType: hard +"text-decoder@npm:^1.1.0": + version: 1.2.7 + resolution: "text-decoder@npm:1.2.7" + dependencies: + b4a: "npm:^1.6.4" + checksum: 10c0/929938ed154fbadb660a7f3d1aca30b7e53649a731af7583168fcfba0c158046325d35d945926e2a512bb62d1a49a7818151c987ea38b48853f01e1615722fc5 + languageName: node + linkType: hard + "thingies@npm:^2.5.0": - version: 2.5.0 - resolution: "thingies@npm:2.5.0" + version: 2.6.0 + resolution: "thingies@npm:2.6.0" peerDependencies: tslib: ^2 - checksum: 10c0/52194642c129615b6af15648621be9a2784ad25526e3facca6c28aa1a36ea32245ef146ebc3fbaf64a3605b8301a5335da505d0c314f851ff293b184e0de7fb9 + checksum: 10c0/6357247872cfd0ef5407455eab2724ccbf591f0b1a56a230c66ab139dc0a8bb4acaf85c177af0eee7a49740a4674c424529eca3e573b439eb256afed4e433fac languageName: node linkType: hard @@ -19000,7 +18227,7 @@ __metadata: languageName: node linkType: hard -"through2@npm:^2.0.0, through2@npm:~2.0.3": +"through2@npm:^2.0.0, through2@npm:^2.0.1, through2@npm:~2.0.3": version: 2.0.5 resolution: "through2@npm:2.0.5" dependencies: @@ -19022,24 +18249,24 @@ __metadata: resolution: "timestamp-example@workspace:examples/timestamp" dependencies: "@angular-builders/timestamp": "workspace:*" - "@angular-devkit/build-angular": "npm:21.2.14" - "@angular-eslint/builder": "npm:21.4.0" - "@angular/animations": "npm:21.2.16" - "@angular/cli": "npm:21.2.14" - "@angular/common": "npm:21.2.16" - "@angular/compiler": "npm:21.2.16" - "@angular/compiler-cli": "npm:21.2.16" - "@angular/core": "npm:21.2.16" - "@angular/forms": "npm:21.2.16" - "@angular/language-service": "npm:21.2.16" - "@angular/platform-browser": "npm:21.2.16" - "@angular/platform-browser-dynamic": "npm:21.2.16" - "@angular/router": "npm:21.2.16" + "@angular-devkit/build-angular": "npm:22.0.0" + "@angular-eslint/builder": "npm:22.0.0" + "@angular/animations": "npm:22.0.0" + "@angular/cli": "npm:22.0.0" + "@angular/common": "npm:22.0.0" + "@angular/compiler": "npm:22.0.0" + "@angular/compiler-cli": "npm:22.0.0" + "@angular/core": "npm:22.0.0" + "@angular/forms": "npm:22.0.0" + "@angular/language-service": "npm:22.0.0" + "@angular/platform-browser": "npm:22.0.0" + "@angular/platform-browser-dynamic": "npm:22.0.0" + "@angular/router": "npm:22.0.0" "@cypress/schematic": "npm:5.0.0" "@eslint/js": "npm:10.0.1" "@types/jasmine": "npm:6.0.0" "@types/node": "npm:24.13.1" - angular-eslint: "npm:21.4.0" + angular-eslint: "npm:22.0.0" cypress: "npm:15.16.0" eslint: "npm:10.4.1" jasmine-core: "npm:6.3.0" @@ -19049,10 +18276,9 @@ __metadata: karma-jasmine: "npm:5.1.0" karma-jasmine-html-reporter: "npm:2.2.0" rxjs: "npm:7.8.2" - ts-node: "npm:10.9.2" tslib: "npm:2.8.1" - typescript: "npm:5.9.3" - typescript-eslint: "npm:8.60.1" + typescript: "npm:6.0.3" + typescript-eslint: "npm:8.60.0" zone.js: "npm:0.16.2" languageName: unknown linkType: soft @@ -19071,27 +18297,30 @@ __metadata: languageName: node linkType: hard -"tinyexec@npm:^1.0.0, tinyexec@npm:^1.0.2": - version: 1.0.2 - resolution: "tinyexec@npm:1.0.2" - checksum: 10c0/1261a8e34c9b539a9aae3b7f0bb5372045ff28ee1eba035a2a059e532198fe1a182ec61ac60fa0b4a4129f0c4c4b1d2d57355b5cb9aa2d17ac9454ecace502ee - languageName: node - linkType: hard - -"tinyexec@npm:^1.2.4": +"tinyexec@npm:^1.0.0, tinyexec@npm:^1.0.2, tinyexec@npm:^1.2.4": version: 1.2.4 resolution: "tinyexec@npm:1.2.4" checksum: 10c0/153b8db6b080194b558ff145b9cffc36b80a6e07babd644dcfbe49c807eee668c876049d28bdee90b96304476f883352f2dad91b3f86bc23832532f4363e66ff languageName: node linkType: hard -"tinyglobby@npm:0.2.15, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15": - version: 0.2.15 - resolution: "tinyglobby@npm:0.2.15" +"tinyglobby@npm:0.2.16": + version: 0.2.16 + resolution: "tinyglobby@npm:0.2.16" dependencies: fdir: "npm:^6.5.0" - picomatch: "npm:^4.0.3" - checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844 + picomatch: "npm:^4.0.4" + checksum: 10c0/f2e09fd93dd95c41e522113b686ff6f7c13020962f8698a864a257f3d7737599afc47722b7ab726e12f8a813f779906187911ff8ee6701ede65072671a7e934b + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.15, tinyglobby@npm:^0.2.17": + version: 0.2.17 + resolution: "tinyglobby@npm:0.2.17" + dependencies: + fdir: "npm:^6.5.0" + picomatch: "npm:^4.0.4" + checksum: 10c0/7f7bb0f197c88bc4b20c231e0deca4240ca3bf313a88f5a7fee93a872b84966a4d50220947c0455ad07a60b3b360961c5b7fd979222aeb716a9f99b412002e4c languageName: node linkType: hard @@ -19109,10 +18338,10 @@ __metadata: languageName: node linkType: hard -"tldts-core@npm:^7.0.23": - version: 7.0.23 - resolution: "tldts-core@npm:7.0.23" - checksum: 10c0/b3d936a75b5f65614c356a58ef37563681c6224187dcce9f57aac76d92aae83b1a6fe6ab910f77472b35456bc145a8441cb3e572b4850be43cb4f3465e0610ec +"tldts-core@npm:^7.4.2": + version: 7.4.2 + resolution: "tldts-core@npm:7.4.2" + checksum: 10c0/e8e02a43f6823ea1beab8f5a9da370b9a6cbf1a942d4f7d828700e65f03a119348f8d19faa95b599f3ca76fcb5fe5c4611d5b9c274f5a58c7487d342f6083a06 languageName: node linkType: hard @@ -19128,20 +18357,20 @@ __metadata: linkType: hard "tldts@npm:^7.0.5": - version: 7.0.23 - resolution: "tldts@npm:7.0.23" + version: 7.4.2 + resolution: "tldts@npm:7.4.2" dependencies: - tldts-core: "npm:^7.0.23" + tldts-core: "npm:^7.4.2" bin: tldts: bin/cli.js - checksum: 10c0/492874770afaade724a10f8a97cce511d74bed07735c7f1100b7957254d7a5bbbc18becaf5cd049f9d7b0feeb945a64af64d5a300dfb851a4ac57cf3a5998afc + checksum: 10c0/68f7ec58c9ea41f1583a6384f0fdf1b33d2d8ee55e7d403ec5cf9de4a7226a25c585b5ce1a73de8ddc9abbbe7b783bb3554d1c811fd47fceb0d5511e06d0d766 languageName: node linkType: hard "tmp@npm:^0.2.1, tmp@npm:~0.2.4": - version: 0.2.5 - resolution: "tmp@npm:0.2.5" - checksum: 10c0/cee5bb7d674bb4ba3ab3f3841c2ca7e46daeb2109eec395c1ec7329a91d52fcb21032b79ac25161a37b2565c4858fefab927af9735926a113ef7bac9091a6e0e + version: 0.2.7 + resolution: "tmp@npm:0.2.7" + checksum: 10c0/59eb55584f2f07210d3231b6a1f6b5c2b9794d8a7b509c8ee867ed2acad6d2245ee2448b7937b676ffbff3155a70077edde8a69f9d7cf0f90c86a62e8910c357 languageName: node linkType: hard @@ -19236,16 +18465,7 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^2.1.0": - version: 2.1.0 - resolution: "ts-api-utils@npm:2.1.0" - peerDependencies: - typescript: ">=4.8.4" - checksum: 10c0/9806a38adea2db0f6aa217ccc6bc9c391ddba338a9fe3080676d0d50ed806d305bb90e8cef0276e793d28c8a929f400abb184ddd7ff83a416959c0f4d2ce754f - languageName: node - linkType: hard - -"ts-api-utils@npm:^2.5.0": +"ts-api-utils@npm:^2.1.0, ts-api-utils@npm:^2.5.0": version: 2.5.0 resolution: "ts-api-utils@npm:2.5.0" peerDependencies: @@ -19254,7 +18474,7 @@ __metadata: languageName: node linkType: hard -"ts-jest@npm:29.4.11": +"ts-jest@npm:29.4.11, ts-jest@npm:^29.4.0": version: 29.4.11 resolution: "ts-jest@npm:29.4.11" dependencies: @@ -19294,95 +18514,6 @@ __metadata: languageName: node linkType: hard -"ts-jest@npm:^29.4.0": - version: 29.4.6 - resolution: "ts-jest@npm:29.4.6" - dependencies: - bs-logger: "npm:^0.2.6" - fast-json-stable-stringify: "npm:^2.1.0" - handlebars: "npm:^4.7.8" - json5: "npm:^2.2.3" - lodash.memoize: "npm:^4.1.2" - make-error: "npm:^1.3.6" - semver: "npm:^7.7.3" - type-fest: "npm:^4.41.0" - yargs-parser: "npm:^21.1.1" - peerDependencies: - "@babel/core": ">=7.0.0-beta.0 <8" - "@jest/transform": ^29.0.0 || ^30.0.0 - "@jest/types": ^29.0.0 || ^30.0.0 - babel-jest: ^29.0.0 || ^30.0.0 - jest: ^29.0.0 || ^30.0.0 - jest-util: ^29.0.0 || ^30.0.0 - typescript: ">=4.3 <6" - peerDependenciesMeta: - "@babel/core": - optional: true - "@jest/transform": - optional: true - "@jest/types": - optional: true - babel-jest: - optional: true - esbuild: - optional: true - jest-util: - optional: true - bin: - ts-jest: cli.js - checksum: 10c0/013dda99ac938cd4b94bae9323ed1b633cd295976c256d596d01776866188078fe7b82b8b3ebd05deb401b27b5618d9d76208eded2568661240ecf9694a5c933 - languageName: node - linkType: hard - -"ts-node@npm:10.9.2, ts-node@npm:^10.0.0": - version: 10.9.2 - resolution: "ts-node@npm:10.9.2" - dependencies: - "@cspotcode/source-map-support": "npm:^0.8.0" - "@tsconfig/node10": "npm:^1.0.7" - "@tsconfig/node12": "npm:^1.0.7" - "@tsconfig/node14": "npm:^1.0.0" - "@tsconfig/node16": "npm:^1.0.2" - acorn: "npm:^8.4.1" - acorn-walk: "npm:^8.1.1" - arg: "npm:^4.1.0" - create-require: "npm:^1.1.0" - diff: "npm:^4.0.1" - make-error: "npm:^1.1.1" - v8-compile-cache-lib: "npm:^3.0.1" - yn: "npm:3.1.1" - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - bin: - ts-node: dist/bin.js - ts-node-cwd: dist/bin-cwd.js - ts-node-esm: dist/bin-esm.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: 10c0/5f29938489f96982a25ba650b64218e83a3357d76f7bede80195c65ab44ad279c8357264639b7abdd5d7e75fc269a83daa0e9c62fd8637a3def67254ecc9ddc2 - languageName: node - linkType: hard - -"tsconfig-paths@npm:^4.2.0": - version: 4.2.0 - resolution: "tsconfig-paths@npm:4.2.0" - dependencies: - json5: "npm:^2.2.2" - minimist: "npm:^1.2.6" - strip-bom: "npm:^3.0.0" - checksum: 10c0/09a5877402d082bb1134930c10249edeebc0211f36150c35e1c542e5b91f1047b1ccf7da1e59babca1ef1f014c525510f4f870de7c9bda470c73bb4e2721b3ea - languageName: node - linkType: hard - "tslib@npm:1.14.1, tslib@npm:^1.9.3": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -19390,7 +18521,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.8.1": +"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.8.1": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 @@ -19406,14 +18537,14 @@ __metadata: languageName: node linkType: hard -"tuf-js@npm:^4.0.0": - version: 4.0.0 - resolution: "tuf-js@npm:4.0.0" +"tuf-js@npm:^4.1.0": + version: 4.1.0 + resolution: "tuf-js@npm:4.1.0" dependencies: - "@tufjs/models": "npm:4.0.0" - debug: "npm:^4.4.1" - make-fetch-happen: "npm:^15.0.0" - checksum: 10c0/04aebefc7a55abd185eadd4c4ac72bac92b57912eb53c4cfdf5216126324e875bf01501472bae9611224862eb015c5a1cb0b675a44f2726c494dbce10c1416e5 + "@tufjs/models": "npm:4.1.0" + debug: "npm:^4.4.3" + make-fetch-happen: "npm:^15.0.1" + checksum: 10c0/38330b0b2d16f7f58eccd49b3a6ff0f87dd20743d6f2c26c2621089d8d83d807808e0e660c5be891122538d32db250e3e88267da4421537253e7aa99a45e5800 languageName: node linkType: hard @@ -19509,13 +18640,13 @@ __metadata: linkType: hard "type-is@npm:^2.0.1": - version: 2.0.1 - resolution: "type-is@npm:2.0.1" + version: 2.1.0 + resolution: "type-is@npm:2.1.0" dependencies: - content-type: "npm:^1.0.5" + content-type: "npm:^2.0.0" media-typer: "npm:^1.1.0" mime-types: "npm:^3.0.0" - checksum: 10c0/7f7ec0a060b16880bdad36824ab37c26019454b67d73e8a465ed5a3587440fbe158bc765f0da68344498235c877e7dbbb1600beccc94628ed05599d667951b99 + checksum: 10c0/a6018f8f509de48f2c7429305e3a920e73b374fa93127dd0877ae1c2df65a5d33907caac8afb0c37a9b9fc7c49f29e3f55d668963dc845d966930b667c07f50e languageName: node linkType: hard @@ -19550,28 +18681,28 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:8.60.1": - version: 8.60.1 - resolution: "typescript-eslint@npm:8.60.1" +"typescript-eslint@npm:8.60.0": + version: 8.60.0 + resolution: "typescript-eslint@npm:8.60.0" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.60.1" - "@typescript-eslint/parser": "npm:8.60.1" - "@typescript-eslint/typescript-estree": "npm:8.60.1" - "@typescript-eslint/utils": "npm:8.60.1" + "@typescript-eslint/eslint-plugin": "npm:8.60.0" + "@typescript-eslint/parser": "npm:8.60.0" + "@typescript-eslint/typescript-estree": "npm:8.60.0" + "@typescript-eslint/utils": "npm:8.60.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/75a42e14b4a7446dd9ad992422135f696e0af58d7c0f64ff2d9f157f1df7bac6a089fa7a35454d2393eadd329e602c0002c07043bbcf4906f7007e45e783b54e + checksum: 10c0/6968de79ab61b1c56d7233260a3092daf578399117d804c46b34dcedf0317b33cd3025ba34789b8dc4567f30f6d62d0d11691c9dca278173abe91772741ab79d languageName: node linkType: hard -"typescript@npm:5.9.3": - version: 5.9.3 - resolution: "typescript@npm:5.9.3" +"typescript@npm:6.0.3": + version: 6.0.3 + resolution: "typescript@npm:6.0.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/6bd7552ce39f97e711db5aa048f6f9995b53f1c52f7d8667c1abdc1700c68a76a308f579cd309ce6b53646deb4e9a1be7c813a93baaf0a28ccd536a30270e1c5 + checksum: 10c0/4a25ff5045b984370f48f196b3a0120779b1b343d40b9a68d114ea5e5fff099809b2bb777576991a63a5cd59cf7bffd96ff6fe10afcefbcb8bd6fb96ad4b6606 languageName: node linkType: hard @@ -19585,13 +18716,13 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A5.9.3#optional!builtin": - version: 5.9.3 - resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" +"typescript@patch:typescript@npm%3A6.0.3#optional!builtin": + version: 6.0.3 + resolution: "typescript@patch:typescript@npm%3A6.0.3#optional!builtin::version=6.0.3&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/ad09fdf7a756814dce65bc60c1657b40d44451346858eea230e10f2e95a289d9183b6e32e5c11e95acc0ccc214b4f36289dcad4bf1886b0adb84d711d336a430 + checksum: 10c0/2f25c74e65663c248fa1ade2b8459d9ce5372ff9dad07067310f132966ebec1d93f6c42f0baf77a6b6a7a91460463f708e6887013aaade22111037457c6b25df languageName: node linkType: hard @@ -19637,13 +18768,6 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.21.0": - version: 6.21.0 - resolution: "undici-types@npm:6.21.0" - checksum: 10c0/c01ed51829b10aa72fc3ce64b747f8e74ae9b60eafa19a7b46ef624403508a54c526ffab06a14a26b3120d055e1104d7abe7c9017e83ced038ea5cf52f8d5e04 - languageName: node - linkType: hard - "undici-types@npm:~7.18.0": version: 7.18.2 resolution: "undici-types@npm:7.18.2" @@ -19651,17 +18775,17 @@ __metadata: languageName: node linkType: hard -"undici@npm:7.24.4": - version: 7.24.4 - resolution: "undici@npm:7.24.4" - checksum: 10c0/cb302e81fadb7f0b7946ab77595715c0961b46a025ccecae79ba599432d0bc8d1e3da4dfe7ff66bc74f115c1b8ff0f099bc4e9bf313db4562da23995872c6d17 +"undici@npm:^6.25.0": + version: 6.26.0 + resolution: "undici@npm:6.26.0" + checksum: 10c0/cf2b4caf58c33d6582970991290cc7a6486d6e738845f25dcdd16952d708ec844815c6d30362919764fcaf30f719891289341f1ada496f003ce2700310453a47 languageName: node linkType: hard "undici@npm:^7.25.0": - version: 7.25.0 - resolution: "undici@npm:7.25.0" - checksum: 10c0/02a0b45dc14eb91bc488948750232450fe52f27a6b08086d6ac6736bb47908d600fe3a96d346f12eab24729c782e5c2f693bc8e8eca6696d4e4c09b1ed4cb4ec + version: 7.27.2 + resolution: "undici@npm:7.27.2" + checksum: 10c0/714632147c80eb8eda8a52df51b481d346df5e035ccc1d87eb3bbcb8f92ec25d7cbbe81abdeae5db4e37a93e490c8d2fa2359ecdca4b2c5c6c513dcd2626ad47 languageName: node linkType: hard @@ -19713,42 +18837,6 @@ __metadata: languageName: node linkType: hard -"unique-filename@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-filename@npm:4.0.0" - dependencies: - unique-slug: "npm:^5.0.0" - checksum: 10c0/38ae681cceb1408ea0587b6b01e29b00eee3c84baee1e41fd5c16b9ed443b80fba90c40e0ba69627e30855570a34ba8b06702d4a35035d4b5e198bf5a64c9ddc - languageName: node - linkType: hard - -"unique-filename@npm:^5.0.0": - version: 5.0.0 - resolution: "unique-filename@npm:5.0.0" - dependencies: - unique-slug: "npm:^6.0.0" - checksum: 10c0/afb897e9cf4c2fb622ea716f7c2bb462001928fc5f437972213afdf1cc32101a230c0f1e9d96fc91ee5185eca0f2feb34127145874975f347be52eb91d6ccc2c - languageName: node - linkType: hard - -"unique-slug@npm:^5.0.0": - version: 5.0.0 - resolution: "unique-slug@npm:5.0.0" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 10c0/d324c5a44887bd7e105ce800fcf7533d43f29c48757ac410afd42975de82cc38ea2035c0483f4de82d186691bf3208ef35c644f73aa2b1b20b8e651be5afd293 - languageName: node - linkType: hard - -"unique-slug@npm:^6.0.0": - version: 6.0.0 - resolution: "unique-slug@npm:6.0.0" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 10c0/da7ade4cb04eb33ad0499861f82fe95ce9c7c878b7139dc54d140ecfb6a6541c18a5c8dac16188b8b379fe62c0c1f1b710814baac910cde5f4fec06212126c6a - languageName: node - linkType: hard - "universal-user-agent@npm:^7.0.0, universal-user-agent@npm:^7.0.2": version: 7.0.3 resolution: "universal-user-agent@npm:7.0.3" @@ -19770,7 +18858,7 @@ __metadata: languageName: node linkType: hard -"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": +"unpipe@npm:~1.0.0": version: 1.0.0 resolution: "unpipe@npm:1.0.0" checksum: 10c0/193400255bd48968e5c5383730344fbb4fa114cdedfab26e329e50dd2d81b134244bb8a72c6ac1b10ab0281a58b363d06405632c9d49ca9dfd5e90cbd7d0f32c @@ -19778,29 +18866,32 @@ __metadata: linkType: hard "unrs-resolver@npm:^1.7.11": - version: 1.11.1 - resolution: "unrs-resolver@npm:1.11.1" - dependencies: - "@unrs/resolver-binding-android-arm-eabi": "npm:1.11.1" - "@unrs/resolver-binding-android-arm64": "npm:1.11.1" - "@unrs/resolver-binding-darwin-arm64": "npm:1.11.1" - "@unrs/resolver-binding-darwin-x64": "npm:1.11.1" - "@unrs/resolver-binding-freebsd-x64": "npm:1.11.1" - "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.11.1" - "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.11.1" - "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-arm64-musl": "npm:1.11.1" - "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-riscv64-musl": "npm:1.11.1" - "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-x64-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-x64-musl": "npm:1.11.1" - "@unrs/resolver-binding-wasm32-wasi": "npm:1.11.1" - "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.11.1" - "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.11.1" - "@unrs/resolver-binding-win32-x64-msvc": "npm:1.11.1" - napi-postinstall: "npm:^0.3.0" + version: 1.12.2 + resolution: "unrs-resolver@npm:1.12.2" + dependencies: + "@unrs/resolver-binding-android-arm-eabi": "npm:1.12.2" + "@unrs/resolver-binding-android-arm64": "npm:1.12.2" + "@unrs/resolver-binding-darwin-arm64": "npm:1.12.2" + "@unrs/resolver-binding-darwin-x64": "npm:1.12.2" + "@unrs/resolver-binding-freebsd-x64": "npm:1.12.2" + "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.12.2" + "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.12.2" + "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.12.2" + "@unrs/resolver-binding-linux-arm64-musl": "npm:1.12.2" + "@unrs/resolver-binding-linux-loong64-gnu": "npm:1.12.2" + "@unrs/resolver-binding-linux-loong64-musl": "npm:1.12.2" + "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.12.2" + "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.12.2" + "@unrs/resolver-binding-linux-riscv64-musl": "npm:1.12.2" + "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.12.2" + "@unrs/resolver-binding-linux-x64-gnu": "npm:1.12.2" + "@unrs/resolver-binding-linux-x64-musl": "npm:1.12.2" + "@unrs/resolver-binding-openharmony-arm64": "npm:1.12.2" + "@unrs/resolver-binding-wasm32-wasi": "npm:1.12.2" + "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.12.2" + "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.12.2" + "@unrs/resolver-binding-win32-x64-msvc": "npm:1.12.2" + napi-postinstall: "npm:^0.3.4" dependenciesMeta: "@unrs/resolver-binding-android-arm-eabi": optional: true @@ -19820,6 +18911,10 @@ __metadata: optional: true "@unrs/resolver-binding-linux-arm64-musl": optional: true + "@unrs/resolver-binding-linux-loong64-gnu": + optional: true + "@unrs/resolver-binding-linux-loong64-musl": + optional: true "@unrs/resolver-binding-linux-ppc64-gnu": optional: true "@unrs/resolver-binding-linux-riscv64-gnu": @@ -19832,6 +18927,8 @@ __metadata: optional: true "@unrs/resolver-binding-linux-x64-musl": optional: true + "@unrs/resolver-binding-openharmony-arm64": + optional: true "@unrs/resolver-binding-wasm32-wasi": optional: true "@unrs/resolver-binding-win32-arm64-msvc": @@ -19840,7 +18937,7 @@ __metadata: optional: true "@unrs/resolver-binding-win32-x64-msvc": optional: true - checksum: 10c0/c91b112c71a33d6b24e5c708dab43ab80911f2df8ee65b87cd7a18fb5af446708e98c4b415ca262026ad8df326debcc7ca6a801b2935504d87fd6f0b9d70dce1 + checksum: 10c0/ddc27f6d920eabdafeac0077ebff9fd799c895cea025751dc17b360bf9be7c93c471fafebf65f205eec476f90d7daa36aef889d47362b2dd4705d68852bcfea4 languageName: node linkType: hard @@ -19851,23 +18948,9 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.1.4": - version: 1.1.4 - resolution: "update-browserslist-db@npm:1.1.4" - dependencies: - escalade: "npm:^3.2.0" - picocolors: "npm:^1.1.1" - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 10c0/db0c9aaecf1258a6acda5e937fc27a7996ccca7a7580a1b4aa8bba6a9b0e283e5e65c49ebbd74ec29288ef083f1b88d4da13e3d4d326c1e5fc55bf72d7390702 - languageName: node - linkType: hard - -"update-browserslist-db@npm:^1.2.0": - version: 1.2.2 - resolution: "update-browserslist-db@npm:1.2.2" +"update-browserslist-db@npm:^1.2.3": + version: 1.2.3 + resolution: "update-browserslist-db@npm:1.2.3" dependencies: escalade: "npm:^3.2.0" picocolors: "npm:^1.1.1" @@ -19875,7 +18958,7 @@ __metadata: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 10c0/39c3ea08b397ffc8dc3a1c517f5c6ed5cc4179b5e185383dab9bf745879623c12062a2e6bf4f9427cc59389c7bfa0010e86858b923c1e349e32fdddd9b043bb2 + checksum: 10c0/13a00355ea822388f68af57410ce3255941d5fb9b7c49342c4709a07c9f230bbef7f7499ae0ca7e0de532e79a82cc0c4edbd125f1a323a1845bf914efddf8bec languageName: node linkType: hard @@ -19943,13 +19026,6 @@ __metadata: languageName: node linkType: hard -"v8-compile-cache-lib@npm:^3.0.1": - version: 3.0.1 - resolution: "v8-compile-cache-lib@npm:3.0.1" - checksum: 10c0/bdc36fb8095d3b41df197f5fb6f11e3a26adf4059df3213e3baa93810d8f0cc76f9a74aaefc18b73e91fe7e19154ed6f134eda6fded2e0f1c8d2272ed2d2d391 - languageName: node - linkType: hard - "v8-to-istanbul@npm:^9.0.1": version: 9.3.0 resolution: "v8-to-istanbul@npm:9.3.0" @@ -19972,9 +19048,9 @@ __metadata: linkType: hard "validate-npm-package-name@npm:^7.0.0": - version: 7.0.0 - resolution: "validate-npm-package-name@npm:7.0.0" - checksum: 10c0/b725d816fd9503772e4e01a5a3a3791f9faf05d4c5ca12c11a0e0a62c048f5c555af7e407f327a720c22842dc285d07fca43cf67345ee10acfd821e94b380251 + version: 7.0.2 + resolution: "validate-npm-package-name@npm:7.0.2" + checksum: 10c0/adf32e943148e13e8df13d06b855493908e6ae7a847610e8543c6291cbf42f40e653249a5b2275e2e615e3224c574ade5a9064a9e2d1ab629386284ea99e8f39 languageName: node linkType: hard @@ -20052,19 +19128,19 @@ __metadata: linkType: hard "vite@npm:^6.0.0 || ^7.0.0 || ^8.0.0": - version: 8.0.2 - resolution: "vite@npm:8.0.2" + version: 8.0.16 + resolution: "vite@npm:8.0.16" dependencies: fsevents: "npm:~2.3.3" lightningcss: "npm:^1.32.0" - picomatch: "npm:^4.0.3" - postcss: "npm:^8.5.8" - rolldown: "npm:1.0.0-rc.11" - tinyglobby: "npm:^0.2.15" + picomatch: "npm:^4.0.4" + postcss: "npm:^8.5.15" + rolldown: "npm:1.0.3" + tinyglobby: "npm:^0.2.17" peerDependencies: "@types/node": ^20.19.0 || >=22.12.0 - "@vitejs/devtools": ^0.1.0 - esbuild: ^0.27.0 + "@vitejs/devtools": ^0.1.18 + esbuild: ^0.27.0 || ^0.28.0 jiti: ">=1.21.0" less: ^4.0.0 sass: ^1.70.0 @@ -20104,7 +19180,75 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/b271a3c3f8100bab45ee16583cb046aa028f943205b56065b09d3f1851ed8e7068fc6a76e9dc01beca805e8bb1e53f229c4c1c623be87ef1acb00fc002a29cf6 + checksum: 10c0/d75be3fbe2f63e6a8145325970338afaf0dd4d96ba9175c13f9a286fd5f95afc489401b693e4fa6c0899a4dd0e137be91cdf9401a40a635563911ad5036e3467 + languageName: node + linkType: hard + +"vitest@npm:4.1.7": + version: 4.1.7 + resolution: "vitest@npm:4.1.7" + dependencies: + "@vitest/expect": "npm:4.1.7" + "@vitest/mocker": "npm:4.1.7" + "@vitest/pretty-format": "npm:4.1.7" + "@vitest/runner": "npm:4.1.7" + "@vitest/snapshot": "npm:4.1.7" + "@vitest/spy": "npm:4.1.7" + "@vitest/utils": "npm:4.1.7" + es-module-lexer: "npm:^2.0.0" + expect-type: "npm:^1.3.0" + magic-string: "npm:^0.30.21" + obug: "npm:^2.1.1" + pathe: "npm:^2.0.3" + picomatch: "npm:^4.0.3" + std-env: "npm:^4.0.0-rc.1" + tinybench: "npm:^2.9.0" + tinyexec: "npm:^1.0.2" + tinyglobby: "npm:^0.2.15" + tinyrainbow: "npm:^3.1.0" + vite: "npm:^6.0.0 || ^7.0.0 || ^8.0.0" + why-is-node-running: "npm:^2.3.0" + peerDependencies: + "@edge-runtime/vm": "*" + "@opentelemetry/api": ^1.9.0 + "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 + "@vitest/browser-playwright": 4.1.7 + "@vitest/browser-preview": 4.1.7 + "@vitest/browser-webdriverio": 4.1.7 + "@vitest/coverage-istanbul": 4.1.7 + "@vitest/coverage-v8": 4.1.7 + "@vitest/ui": 4.1.7 + happy-dom: "*" + jsdom: "*" + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@opentelemetry/api": + optional: true + "@types/node": + optional: true + "@vitest/browser-playwright": + optional: true + "@vitest/browser-preview": + optional: true + "@vitest/browser-webdriverio": + optional: true + "@vitest/coverage-istanbul": + optional: true + "@vitest/coverage-v8": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vite: + optional: false + bin: + vitest: vitest.mjs + checksum: 10c0/5328eab211161bdb854159154b02d7b2beab0cf1e26a1c13f6a64b0f1402029d41f19987cf60684051c09a6925030285195ecbe57271c2033e1d4f7a666590d0 languageName: node linkType: hard @@ -20241,6 +19385,13 @@ __metadata: languageName: node linkType: hard +"webdriver-bidi-protocol@npm:0.4.1": + version: 0.4.1 + resolution: "webdriver-bidi-protocol@npm:0.4.1" + checksum: 10c0/16e6f0be41d725a465f02ad9b7bd9a6ce44466b381f31423485ad4d2e2bd0c5fb6f16bacb1867afbe45a41f3fe34960be890bcd28d32116ec2f9ff56794f28f3 + languageName: node + linkType: hard + "webdriver-bidi-protocol@npm:0.4.2": version: 0.4.2 resolution: "webdriver-bidi-protocol@npm:0.4.2" @@ -20269,7 +19420,25 @@ __metadata: languageName: node linkType: hard -"webpack-dev-middleware@npm:7.4.5, webpack-dev-middleware@npm:^7.4.2": +"webpack-dev-middleware@npm:8.0.3": + version: 8.0.3 + resolution: "webpack-dev-middleware@npm:8.0.3" + dependencies: + memfs: "npm:^4.56.10" + mime-types: "npm:^3.0.2" + on-finished: "npm:^2.4.1" + range-parser: "npm:^1.2.1" + schema-utils: "npm:^4.3.3" + peerDependencies: + webpack: ^5.101.0 + peerDependenciesMeta: + webpack: + optional: true + checksum: 10c0/d9752ce08f1868bec0e49f6034d3b5b23c80c990e8ba3f3e4dfde8ffed552a9e5a10282d7adfaf74318ab17fcd017a10a1ea8871e7f705ab496d970b699c5417 + languageName: node + linkType: hard + +"webpack-dev-middleware@npm:^7.4.2": version: 7.4.5 resolution: "webpack-dev-middleware@npm:7.4.5" dependencies: @@ -20344,10 +19513,10 @@ __metadata: languageName: node linkType: hard -"webpack-sources@npm:^3.0.0, webpack-sources@npm:^3.3.3": - version: 3.3.3 - resolution: "webpack-sources@npm:3.3.3" - checksum: 10c0/ab732f6933b513ba4d505130418995ddef6df988421fccf3289e53583c6a39e205c4a0739cee98950964552d3006604912679c736031337fb4a9d78d8576ed40 +"webpack-sources@npm:^3.0.0, webpack-sources@npm:^3.3.4": + version: 3.5.0 + resolution: "webpack-sources@npm:3.5.0" + checksum: 10c0/f186eb66ffe245479e7f78c1c202d79584d5b65cc2bc4a6175ff952cdc8840872b1a95e6305078b1286324a19527213935e7d10b53192a9f74c0e0e148e55cb0 languageName: node linkType: hard @@ -20366,9 +19535,9 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5.105.2": - version: 5.105.2 - resolution: "webpack@npm:5.105.2" +"webpack@npm:5.106.2": + version: 5.106.2 + resolution: "webpack@npm:5.106.2" dependencies: "@types/eslint-scope": "npm:^3.7.7" "@types/estree": "npm:^1.0.8" @@ -20376,42 +19545,41 @@ __metadata: "@webassemblyjs/ast": "npm:^1.14.1" "@webassemblyjs/wasm-edit": "npm:^1.14.1" "@webassemblyjs/wasm-parser": "npm:^1.14.1" - acorn: "npm:^8.15.0" + acorn: "npm:^8.16.0" acorn-import-phases: "npm:^1.0.3" browserslist: "npm:^4.28.1" chrome-trace-event: "npm:^1.0.2" - enhanced-resolve: "npm:^5.19.0" + enhanced-resolve: "npm:^5.20.0" es-module-lexer: "npm:^2.0.0" eslint-scope: "npm:5.1.1" events: "npm:^3.2.0" glob-to-regexp: "npm:^0.4.1" graceful-fs: "npm:^4.2.11" - json-parse-even-better-errors: "npm:^2.3.1" loader-runner: "npm:^4.3.1" - mime-types: "npm:^2.1.27" + mime-db: "npm:^1.54.0" neo-async: "npm:^2.6.2" schema-utils: "npm:^4.3.3" tapable: "npm:^2.3.0" - terser-webpack-plugin: "npm:^5.3.16" + terser-webpack-plugin: "npm:^5.3.17" watchpack: "npm:^2.5.1" - webpack-sources: "npm:^3.3.3" + webpack-sources: "npm:^3.3.4" peerDependenciesMeta: webpack-cli: optional: true bin: webpack: bin/webpack.js - checksum: 10c0/565df8072c00d72e0a22e136971862b7eac7beb8b8d39a2ae4ab00838941ea58acc5b49dd7ea268e3d839810756cb86ba5c272b3a25904f6db7807cfa8ed0b29 + checksum: 10c0/933293ae94b7f3405147aebd824d978696693a7fbd85cfbf4d05b517329c93f69e634400ad70a27f4ba4148e14e2fd502e335cd8d30d75282091ab3c72a1ac01 languageName: node linkType: hard "websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4": - version: 0.7.4 - resolution: "websocket-driver@npm:0.7.4" + version: 0.7.5 + resolution: "websocket-driver@npm:0.7.5" dependencies: http-parser-js: "npm:>=0.5.1" safe-buffer: "npm:>=5.1.0" websocket-extensions: "npm:>=0.1.1" - checksum: 10c0/5f09547912b27bdc57bac17b7b6527d8993aa4ac8a2d10588bb74aebaf785fdcf64fea034aae0c359b7adff2044dd66f3d03866e4685571f81b13e548f9021f1 + checksum: 10c0/843a3c9f529ce07f2721829f70f62986247525ab22625e857b69da13dc90967bacfe57b85e196801b565cd797e309ddd5b06fa8435732e34e8a8ab6201d7abed languageName: node linkType: hard @@ -20512,25 +19680,14 @@ __metadata: languageName: node linkType: hard -"which@npm:^5.0.0": - version: 5.0.0 - resolution: "which@npm:5.0.0" - dependencies: - isexe: "npm:^3.1.1" - bin: - node-which: bin/which.js - checksum: 10c0/e556e4cd8b7dbf5df52408c9a9dd5ac6518c8c5267c8953f5b0564073c66ed5bf9503b14d876d0e9c7844d4db9725fb0dcf45d6e911e17e26ab363dc3965ae7b - languageName: node - linkType: hard - "which@npm:^6.0.0": - version: 6.0.0 - resolution: "which@npm:6.0.0" + version: 6.0.1 + resolution: "which@npm:6.0.1" dependencies: - isexe: "npm:^3.1.1" + isexe: "npm:^4.0.0" bin: node-which: bin/which.js - checksum: 10c0/fe9d6463fe44a76232bb6e3b3181922c87510a5b250a98f1e43a69c99c079b3f42ddeca7e03d3e5f2241bf2d334f5a7657cfa868b97c109f3870625842f4cc15 + checksum: 10c0/7e710e54ea36d2d6183bee2f9caa27a3b47b9baf8dee55a199b736fcf85eab3b9df7556fca3d02b50af7f3dfba5ea3a45644189836df06267df457e354da66d5 languageName: node linkType: hard @@ -20609,17 +19766,6 @@ __metadata: languageName: node linkType: hard -"wrap-ansi@npm:^6.2.0": - version: 6.2.0 - resolution: "wrap-ansi@npm:6.2.0" - dependencies: - ansi-styles: "npm:^4.0.0" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - checksum: 10c0/baad244e6e33335ea24e86e51868fe6823626e3a3c88d9a6674642afff1d34d9a154c917e74af8d845fd25d170c4ea9cf69a47133c3f3656e1252b3d462d9f6c - languageName: node - linkType: hard - "wrap-ansi@npm:^8.1.0": version: 8.1.0 resolution: "wrap-ansi@npm:8.1.0" @@ -20669,17 +19815,7 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^7.0.0": - version: 7.0.0 - resolution: "write-file-atomic@npm:7.0.0" - dependencies: - imurmurhash: "npm:^0.1.4" - signal-exit: "npm:^4.0.1" - checksum: 10c0/f5dd7c0324ae03b399974484fbe56363654c3884920e3c4f4d59b690596f113f60f4061a3c0aa5e6f4c22e5b9e7e0608954fd8131a916c9123b68a17ba886345 - languageName: node - linkType: hard - -"write-file-atomic@npm:^7.0.1": +"write-file-atomic@npm:^7.0.0, write-file-atomic@npm:^7.0.1": version: 7.0.1 resolution: "write-file-atomic@npm:7.0.1" dependencies: @@ -20700,22 +19836,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.18.0": - version: 8.18.3 - resolution: "ws@npm:8.18.3" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10c0/eac918213de265ef7cb3d4ca348b891a51a520d839aa51cdb8ca93d4fa7ff9f6ccb339ccee89e4075324097f0a55157c89fa3f7147bde9d8d7e90335dc087b53 - languageName: node - linkType: hard - -"ws@npm:^8.21.0": +"ws@npm:^8.18.0, ws@npm:^8.20.0, ws@npm:^8.21.0": version: 8.21.0 resolution: "ws@npm:8.21.0" peerDependencies: @@ -20730,9 +19851,9 @@ __metadata: languageName: node linkType: hard -"ws@npm:~8.17.1": - version: 8.17.1 - resolution: "ws@npm:8.17.1" +"ws@npm:~8.20.1": + version: 8.20.1 + resolution: "ws@npm:8.20.1" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -20741,7 +19862,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 10c0/f4a49064afae4500be772abdc2211c8518f39e1c959640457dcee15d4488628620625c783902a52af2dd02f68558da2868fd06e6fd0e67ebcd09e6881b1b5bfe + checksum: 10c0/ce162433218399cdedeb76fd33363d4d86a7d910058d4e3c679dce08cea65d6da6b39f11baa4d7808d024cf46ed88f6a05c17611621aaad8fc5e62edacc30c5d languageName: node linkType: hard @@ -20828,9 +19949,9 @@ __metadata: linkType: hard "yaml@npm:^1.5.0": - version: 1.10.2 - resolution: "yaml@npm:1.10.2" - checksum: 10c0/5c28b9eb7adc46544f28d9a8d20c5b3cb1215a886609a2fd41f51628d8aaa5878ccd628b755dbcd29f6bb4921bd04ffbc6dcc370689bb96e594e2f9813d2605f + version: 1.10.3 + resolution: "yaml@npm:1.10.3" + checksum: 10c0/c309ff85a0a569a981d71ab9cf0fef68672a16b9cdf40639d1c3b30034f6cd16ee428602bd6d64ecf006f8c8bee499023cac236538f79898aa99fb5db529a2ed languageName: node linkType: hard @@ -20908,7 +20029,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^16.1.1": +"yargs@npm:^16.1.0, yargs@npm:^16.1.1": version: 16.2.0 resolution: "yargs@npm:16.2.0" dependencies: @@ -20938,20 +20059,22 @@ __metadata: languageName: node linkType: hard -"yauzl@npm:^3.3.1": - version: 3.3.1 - resolution: "yauzl@npm:3.3.1" +"yauzl@npm:^2.10.0": + version: 2.10.0 + resolution: "yauzl@npm:2.10.0" dependencies: buffer-crc32: "npm:~0.2.3" - pend: "npm:~1.2.0" - checksum: 10c0/e396b070abb0c528cd4df3b86907142f72e09d5bc1edac262cebbff5b045e3091528a5e54e10a9a7209b031ba94bdcb1ad1ec6d85eecd69ad428bcb4a5c914ae + fd-slicer: "npm:~1.1.0" + checksum: 10c0/f265002af7541b9ec3589a27f5fb8f11cf348b53cc15e2751272e3c062cd73f3e715bc72d43257de71bbaecae446c3f1b14af7559e8ab0261625375541816422 languageName: node linkType: hard -"yn@npm:3.1.1": - version: 3.1.1 - resolution: "yn@npm:3.1.1" - checksum: 10c0/0732468dd7622ed8a274f640f191f3eaf1f39d5349a1b72836df484998d7d9807fbea094e2f5486d6b0cd2414aad5775972df0e68f8604db89a239f0f4bf7443 +"yauzl@npm:^3.3.1": + version: 3.4.0 + resolution: "yauzl@npm:3.4.0" + dependencies: + pend: "npm:~1.2.0" + checksum: 10c0/17a98c42c0065e8af429eb8a61f7a0e4562181ed54080366b838f34f741b6829f167f804787c86b7646bb042707f35871739f053de0548285e405a2eae4da025 languageName: node linkType: hard @@ -20962,13 +20085,6 @@ __metadata: languageName: node linkType: hard -"yoctocolors-cjs@npm:^2.1.3": - version: 2.1.3 - resolution: "yoctocolors-cjs@npm:2.1.3" - checksum: 10c0/584168ef98eb5d913473a4858dce128803c4a6cd87c0f09e954fa01126a59a33ab9e513b633ad9ab953786ed16efdd8c8700097a51635aafaeed3fef7712fa79 - languageName: node - linkType: hard - "yoctocolors@npm:^2.1.1": version: 2.1.2 resolution: "yoctocolors@npm:2.1.2" @@ -20987,18 +20103,18 @@ __metadata: linkType: hard "zod-to-json-schema@npm:^3.25.1": - version: 3.25.1 - resolution: "zod-to-json-schema@npm:3.25.1" + version: 3.25.2 + resolution: "zod-to-json-schema@npm:3.25.2" peerDependencies: - zod: ^3.25 || ^4 - checksum: 10c0/711b30e34d1f1211f1afe64bf457f0d799234199dc005cca720b236ea808804c03164039c232f5df33c46f462023874015a8a0b3aab1585eca14124c324db7e2 + zod: ^3.25.28 || ^4 + checksum: 10c0/dd300554393903022487688af14fbda5c719ba8179702bb55b3aa86318830467f0f7beb7d654036975ac963dc4843b72e59636448bfff9a0608f277bb6a14939 languageName: node linkType: hard -"zod@npm:4.3.6": - version: 4.3.6 - resolution: "zod@npm:4.3.6" - checksum: 10c0/860d25a81ab41d33aa25f8d0d07b091a04acb426e605f396227a796e9e800c44723ed96d0f53a512b57be3d1520f45bf69c0cb3b378a232a00787a2609625307 +"zod@npm:4.4.2": + version: 4.4.2 + resolution: "zod@npm:4.4.2" + checksum: 10c0/aa5097464c41cf22d715cbc29873ae6feaaf56e687b81d140458d7c01201e7b9de1ee46c8567b5458ee3c0068b8a82b2652535b5d39589fcb5562d861c83ded3 languageName: node linkType: hard @@ -21009,10 +20125,10 @@ __metadata: languageName: node linkType: hard -"zod@npm:^3.25 || ^4.0": - version: 4.1.13 - resolution: "zod@npm:4.1.13" - checksum: 10c0/d7e74e82dba81a91ffc3239cd85bc034abe193a28f7087a94ab258a3e48e9a7ca4141920cac979a0d781495b48fc547777394149f26be04c3dc642f58bbc3941 +"zod@npm:^3.25 || ^4.0, zod@npm:^4.0.10": + version: 4.4.3 + resolution: "zod@npm:4.4.3" + checksum: 10c0/7ea31b558e88f9faf44f31dd185e2e1cbf51fed3081787fb96cc2534749b50c0acfc6da7f0922a7353ed092dd358c7d50c28ea96c94d04af64191bd33152eca3 languageName: node linkType: hard